suse下Mysql 5.7安裝

環境情況:

        SUSE Linux Enterprise Server 11 SP3  (x86_64) 

          Mysql  5.7.19

   剛開始安裝的時候打算安裝二進制文件tar.gz,結果安裝過程中問題百出,而且網上查了好久,都以失敗而告終,最後選擇rpm包進行安裝,運氣比較好,除了首次登陸找不到隨機密碼糾結外,沒出什麼大問題。

   1.下載安裝包,四個包缺一不可,不然會報依賴不滿足,然後依次執行rpm -ivh 文件名  

mysql-community-common-5.7.19-1.sles11.x86_64.rpm
mysql-community-libs-5.7.19-1.sles11.x86_64.rpm
mysql-community-client-5.7.19-1.sles11.x86_64.rpm
mysql-community-server-5.7.19-1.sles11.x86_64.rpm

2.這中間沒出現什麼問題,也沒什麼好說的,說說安裝完畢後登陸的問題吧。在安裝完畢後根本沒出現所謂的root用戶的隨機密碼,所以在首次登陸的時候就尷尬了,

執行mysql  -u root 直接進不去,然後從網上找了好久,其實都是一篇複製來複制去,讓從安全模式進入後修改user表的password字段,然而尷尬的是mysql 5.7已經取消了這個字段,該方法行不通。又想了想,安裝沒有顯示隨機密碼,但他確實是創建了,會不會記錄在了日誌裏,然後開始找日誌,問題來了,日誌在哪裏?mysql安裝目錄在哪裏?那就找吧,不在/usr/local下,最後沒辦法了,直接找服務,ps -ef|grep mysql 還好,找到了需要找的文件路徑

cat  /var/log/mysql/mysqld.log後發現文件很長,都沒什麼意義,那就直接找需要的,grep password  /var/log/mysql/mysqld.log

第一行就是需要的,爲了準確定位,建議直接 grep "temporary password"  /var/log/mysql/mysqld.log,終於見到了所謂的隨機密碼

2017-08-31T15:37:43.822067Z 1 [Note] A temporary password is generated for root@localhost: ;ik=?y9wuxbI

用這個登陸mysql,成功。

3.這個密碼太隨機了,必須改下啊,執行set password=pasword('newname');然後刷新讓立即生效flush privileges;

在改密碼時,mysql會有檢核機制,不符合他的檢核規則就修改不成功,會強制修改失敗,這就很蛋疼了,爲了修改密碼糾結了好久,試了好多次才設置成功,最好大寫小寫數字特殊字符全上。然後問題又來了,這樣改完密碼後每次登陸太費勁了,那有沒有方法去不讓他檢核呢?去官網查發現這個檢核是可以關掉的,直接在/etc/my.cnf中添加

validate-password=OFF,保存重啓mysql,然後登陸後重新用set命令設置密碼,這下劇可以設置簡單密碼了。

那如果後面你把自己設置的密碼忘了,那就得換另一種方法重置密碼了,以下方法也可以用在上面找不到生成隨機密碼日誌文件的情況。

  1.首先在/etc/my.cnf中添加一行skip-grant-tables,該命令是讓root可以免密登陸;

  2.執行mysql -u root -p 後出現輸入密碼選項,直接回車就好。mysql 5.7的user表沒有了password字段,查看user表,select * from user\G;發現有一個字段authentication_string,後面值是*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE,看着像是存密碼的字段,改着試下唄,

update user set authentication_string=PASSWORD('123456') where User='root';

然後發現可以用設置的這個密碼登錄,但是在執行操作時會提示讓修改密碼,那就修改吧,用set password修改,可以,密碼重置完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章