php7鏈接mysql8

最近由於剁手買了mac因此在mac上搭建lnmp環境。php

恰好看到mysql從5.7跳到8,性能聽說快上一倍,果斷嚐鮮!mysql

lnmp基本都弄好了,可是到用php鏈接Mysql這一步出了岔子。sql

 

出錯緣由數據庫

mysql8使用caching_sha2_password的身份驗證機制vim

以往的驗證機制則是mysql_native_password性能

 

解決方法加密

sudo vim /etc/my.cnf 

(mysql8默認沒有配置文件,這個得新建)spa

 

添加:code

 [mysqld]

 default_authentication_plugin=mysql_native_password

 

可是這樣還沒徹底解決,由於這樣只對修改配置並重啓Mysql後的新建用戶有效blog

而最初建立的root用戶依然是caching_sha2_password的身份驗證機制

修改配置並重啓後新建一個用戶,能夠令其密碼與root密碼相同,供後續使用(這一步也能夠驗證配置是否生效,生效的話加密後的字符串應跟root密碼不一樣)】

  (新建用戶:CREATE USER ‘新用戶名’@‘localhost' IDENTIFIED BY ‘密碼’;)

 

 

如下修改操做前請備份!!

這個能夠在mysql數據庫中的user表直接將root用戶的plugin改成mysql_native_password

同時把對應的authentication_string改成新用戶加密後的密碼

順利的話這個時候重啓mysql就能夠了,若是能夠了就不用往下看了

 

 

然而這個時候我又恰好腦抽了,改authentication_string的時候沒備份,改下去重啓後就鏈接不上了。

無奈,只好修改密碼(後來發現是我原來密碼沒有刪除乾淨,致使改的密碼不對。暈。)

 

先是修改配置文件:

[mysqld]

skip-grant-tables  #加了這行

default_authentication_plugin=mysql_native_password

 

而後重啓mysql

這時候能夠登陸進去修改root密碼

alter user 'root'@'localhost'IDENTIFIED BY ‘新密碼’;

 

最後記得去掉skip-grant-tables並重啓Mysql

相關文章
相關標籤/搜索