1. 程式人生 > 其它 >MySQL 8.0版本的一些登陸問題

MySQL 8.0版本的一些登陸問題

MySQL 8.0的一些使用問題。

錯誤程式碼:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'exit()' at line 1

  or

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

  or

ERROR 1045 (28000): Access denied for user 'root
'@'localhost' (using password: NO)

  or

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  or

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('*******') WHERE User=
'root'' at line 1

  以上這麼多錯誤,總的來說就是語法錯誤;輸入密碼正確,但就是進不去;就算跳過密碼,改密碼的時候,沒法改。(僅針對MySQL8.0版本)

解決方法:

  很簡單,改密碼。

密碼改了還不行的原因:

  1、MySQL8.0版本不能通過直接修改mysql.user表來更改密碼;

  2、authentication_string欄位下只能是MySQL加密後的43位字串密碼;

解決措施:

1、清空原密碼;

修改my.cnf檔案

vim /etc/my.cnf

加上

skip-grant-tables

儲存更改並重啟MySQL服務

systemctl restart mysqld.service

重啟之後直接mysql命令,秒進mysql

然後清空root密碼

UPDATE user SET authentication_string='' WHERE user='root';

然後重新整理

flush privileges;

exit退出,把插入到my.cnf的skip-grant-tables去掉,然後重啟MySQL。

2、已清空root密碼,修改root密碼;

進入MySQL(上步已清空密碼,故可以進入)。

修改密碼操作(注意區分作用域Host):

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY "***";

  or(如果作用域localhost,則執行下面程式碼)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "***";

返回以下結果則成功

Query OK, 0 rows affected (0.00 sec)

重新整理,然後退出MySQL;

再次進去,發現成功!

總結:

  MySQL 5.*的版本修改密碼命令為

UPDATE user SET authentication_string="123456" WHERE user="root";

  MySQL 8.*的版本修改密碼命令為

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "123456";

  可以看出,5.*之後的版本取消了password函式,故不適用於8.*版本。

附錄:

1、修改Host為%:

update user set host='%' where host= 'localhost';

2、centos 7從零開始安裝MySQL 8.0

首先,解除安裝預設安裝的MariaDB(第二個命令根據自己情況刪除,因為檔名稱可能不同)

rpm -qa | grep -i mariadb
rpm -e --nodeps mariadb-libs

然後,下載MySQL倉庫,並安裝(同一目錄下操作)

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql80-community-release-el7-3.noarch.rpm

最後,安裝MySQL資料庫

yum -y install mysql-community-server

3、MySQL服務操作命令

開啟MySQL服務:

systemctl start mysqld.service

關閉MySQL服務:

systemctl stop mysqld.service

重啟MySQL服務:

systemctl restart mysqld.service

4、檢視MySQL預設登陸密碼命令

cat /var/log/mysqld.log | grep password

5、遠端連線問題

如果遠端連線提示:plugin caching_sha2_password錯誤

原因:MySQL8.0預設密碼策略與5.*版本不同

解決方法:(將plugin修改為mysql_native_password即可)

update user set plugin = 'mysql_native_password' where user = 'root';

重新整理後啟用。

作者:Cool baby 出處:https://www.cnblogs.com/coolbaby/ 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利.