wget "http://mirrors.sohu.com/MysqL/MysqL-5.6/MysqL-5.6.35-linux-glibc2.5-x86_64.tar.gz"
tar -xf MysqL-5.6.35-linux-glibc2.5-x86_64.tar.gz -C /home/MysqL3308/
cd /home/MysqL3308/
mv MysqL-5.6.35-linux-glibc2.5-x86_64/ MysqL3308
./scripts/MysqL_install_db --user=MysqL3308 --basedir=/home/MysqL3308/ --datadir=/home/MysqL3308/data/
/home/MysqL3308/bin/MysqLd_safe --defaults-file=/home/MysqL3308/conf/my.cnf & #用自己的配置文件
报错:MysqL_safe 默认的路径是/usr/local/MysqL,所以要换一下路径
vim /home/MysqL3308/bin/MysqLd_safe
MY_PWD='/home/MysqL3308'
/home/MysqL3308/bin/MysqLd_safe --defaults-file=/home/MysqL3308/conf/my.cnf &
启动MysqL成功
因为我当时忘了搞啥了,反正就是没找到.MysqL_secret文件,所以没有找到初始密码,所以悲催的只能自己设置:
设置初始密码:
1、/home/MysqL3308//bin/MysqLadmin -u root password 'he123321ha' -S /home/MysqL3308/data/MysqL.sock
报错:root 不允许localhost登录
2、/home/MysqL3308/bin/MysqL_secure_installation
报错找不到sock:
解决:
vim /home/MysqL3308/bin/MysqL_secure_installation
sub make_config {
my $password = shift;
my $esc_pass = basic_single_escape($rootpass);
write_file($config,
"# MysqL_secure_installation config file",
"[MysqL]",
"user=root",
"password='$esc_pass'",
"socket=/home/MysqL3308/data/MysqL.sock",
"connect-expired-password");
}
添加一行"socket=/home/MysqL3308/data/MysqL.sock",这样就解决了找不到sock的问题,可是还会报错root 不允许localhost登录,简直气死个人。
####上面这2个设置初始密码都因为不允许root localhost登录,都失败了,白折腾,所以还是要用跳过认证的方式#####
解决:
1、/home/MysqL3308//bin/MysqLadmin -S /home/MysqL3308/data/MysqL.sock shutdown -uroot -p
会报错,因为此时没有密码。
2、kill -9 MysqL的进程号
加--skip-grant-tables 跳过密码认证:
/home/MysqL3308/bin/MysqLd_safe --defaults-file=/home/MysqL3308/conf/my.cnf --skip-grant-tables &
MysqL -uroot -p -S /home/MysqL3308/data/MysqL.sock
回车直接登录进去
use MysqL;
update user set password=password('123456') where user='root' and host='localhost';
flush privileges;
exit
/home/MysqL3308//bin/MysqLadmin -S /home/MysqL3308/data/MysqL.sock shutdown -uroot -p 此时该命令也不报错了,可以成功关闭MysqL了,因为密码生效了。
MysqL -uroot -p -S /home/MysqL3308/data/MysqL.sock
输入刚才设置的密码:成功登录
原文链接:https://www.f2er.com/centos/374365.html