1. 程式人生 > >centos6.5 二進制安裝mysql5.6 遇到的問題

centos6.5 二進制安裝mysql5.6 遇到的問題

mysql5.6

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



初始化:在當前目錄下生成默認的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 遇到的問題