MySQL安裝之二_安裝配置泥潭版

IMchg發表於2020-12-22

Problem 1:

本地安裝的Mysql 5.5 版本,匯入高版本的sql檔案時,報錯,導致部分表單沒有匯入資料庫
這是低版本mysql資料庫開啟高版本sql檔案會出現的問題

Problem 3:

命令列安裝步驟:
參考:https://www.cnblogs.com/zhangkanghui/p/9613844.html
注意:

  1. cmd要管理員方式執行;
  2. 初始化並生成data檔案別忘了;
  3. sql語句最後分號別忘了;

Problem 4:

Mysql 8.0 以上版本修改賬號密碼的方法與之前不同,若無用老版本方式會報錯
報錯:

老版本:

update mysql.user set password=PASSWORD('newpassword') where User='root'; 

8.0以上版本:

alter user 'root'@'localhost' identified by 'newpassword';

參考:https://www.cnblogs.com/mzxiaoze/p/10413399.html
注意:別忘了重新整理許可權

Problem 5:

MySQL 8.0 以上版本連線navicat會報錯,需要修改加密規則
報錯:

Authentication plugin 'caching_sha2_password' cannot be loaded

修改加密規則:

 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;   #修改加密規則
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';   #更新一下使用者的密碼

參考: https://www.cnblogs.com/zhurong/p/9898675.html

三:Navicat只能用localhost連線MySQL

navicat只能用localhost連線,不能用127.0.0.1連線

1.無"root"@"127.0.0.1"使用者或無許可權:建立使用者並授權

https://blog.csdn.net/Zero_dot_degree/article/details/86573092

該教程操作基於MySQL5.0版本,在MySQL8.0中會報錯:

'for the right syntax to use near 'identified by 'password' with grant option'

MySQL 8.0版本將建立使用者和授權操作分離:

https://blog.csdn.net/shenhonglei1234/article/details/84786443

2.建立"root"@"127.0.0.1"時報錯:

Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

為root使用者加上SYSTEM_USER許可權即可

https://blog.csdn.net/weixin_42330311/article/details/104728396

3.建立"root"@"%"時報錯:

ERROR 1410 (42000): You are not allowed to create a user with GRANT

因為當前user表中沒有root - %記錄; 可以更新root - localhost 為 root - %。

https://blog.csdn.net/mxskymx/article/details/88765072

4.新建使用者無法使用Navicat連線MySQL,報錯:

1251- Client does not support authentication protocol

因為MySQL8.0加密規則變化了,修改如下:

https://www.cnblogs.com/keeya/p/9786403.html

以上嘗試均未解決,重灌MySQL後解決。

四:收穫

1.MySQL建立使用者、授權;

# 建立使用者:
create user 'root'@'127.0.0.1' identified by '123456';
# 授予許可權:
grant all privileges on *.* to 'root'@'127.0.0.1' with grant option;
# 重新整理許可權
flush privileges;

2.MySQL查詢使用者、使用者host、加密方式;

use mysql;
select user,host,plugin from user;

3.MySQL修改使用者host、加密方式、許可權;

alter user 'root'@'localhost' identified with  mysql_native_password by '123456';

五:總結

雖然重灌MySQL解決了問題,但是最初的URL設定也是有問題的。總的來說在使用MySQL8.0時:
1.URL中要設定時區、SSL、編碼等資訊,雖然經測試沒有SSL、編碼也不會報錯;
2.MySQL聯結器的版本號要對應;
3.加入’root’@‘127.0.0.1’使用者並且授權、改加密,安裝後只有’root’@‘localhost’;

相關文章