centos6.5 二進制安裝mysql5.6 遇到的問題
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
初始化:在當前目錄下生成默認的my.cnf文件
./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登錄,都失敗了,白折騰,所以還是要用跳過認證的方式#####
解決:
關閉mysql的2種方式:
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('he123321ha') 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
輸入剛才設置的密碼:成功登錄
centos6.5 二進制安裝mysql5.6 遇到的問題