mysql 8 0 近期使用問題彙總

2021-09-02 14:57:49 字數 1746 閱讀 9180

公司伺服器近期將mysql全部從之前的5.7 公升級到了新的8.0版本,但是遇到了好多的坑,近期吭哧吭哧的改了兩個禮拜的儲存過程了,全部都是血淚啊。

下面說說幾個大坑

1. mysql 8.0 使用其他客戶端登陸的許可權問題,登陸時一直提示

error 2059 (hy000): authentication plugin 'caching_sha2_password' cannot be loaded: õò²»µ½ö¸¶¨µä䣿顣

mysql 8.0 預設使用 caching_sha2_password 身份驗證機制 —— 從原來的 mysql_native_password 更改為 caching_sha2_password。 

從 5.7 公升級 8.0 版本的不會改變現有使用者的身份驗證方法,但新使用者會預設使用新的 caching_sha2_password 。

客戶端不支援新的加密方式。

方法之一,修改使用者的密碼和加密方式

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

mysql8.*的新特性 caching_sha2_password 密碼加密方式

以前版本的mysql密碼加密使用的是 mysql_native_password

新新增的使用者密碼預設使用的 caching_sha2_password

如果在以前mysql基礎上公升級的 就得使用者使用的密碼加密使用的是 mysql_native_password

如果使用以前的密碼加密方式,就修改檔案 /etc/my.cnf

[mysqld]

default_authentication_plugin=mysql_native_password

access denied for user 'root'@'ip位址' 

1、mysql -u root -p 登陸進mysql;

2、執行以下命令:

grant all privileges on *.* to 'your name'@'%' identified by 'your password' with grant option;

flush privileges;

3、exit;

3. 在格式化日期插入資料時經常提示錯誤 「-」,在之前5.7版本如下的規範格式是沒問題的, 但是8.0不行。

str_to_date(b.mdleqp_prop,'%y.%m')+1 as md_date

最後的解決辦法是如下 

date_add(str_to_date((concat(if(b.mdleqp_prop="-",null,b.mdleqp_prop),'.01')),'%y.%m.%d'),interval 0 day) as md_date
4. 在update a表 join 子查詢b表時,5.7也是沒問題的, 速度非常快,但是到了8.0版本上,速度簡直如蝸牛一般,a表大概是180萬資料,b錶子查詢出來的結果是5萬的結果,兩個互相匹配,乙個小時還沒有更新完成,

用explain  看了下  update 的時候type 是all, key是空,

最後的解決辦法是把子查詢做成了臨時表,並加上了索引,之後在update這個臨時表 速度瞬間快多了。

mysql8 0提示命令 MySQL8 0操作命令

mysql8.0版本和mysql5.0的加密規則不一樣,而現在的很多任務具等都是不支援的,我們這裡使用的是將mysql使用者登入的加密規則修改為mysql native password的方法來進行解決的。修改加密規則alter user root localhost identified by p...

MySQL8 0登陸問題

一 忽略密碼 mysql出現error1698 28000 access denied for user root localhost錯誤解決方法 在ubuntu的terminal 也即終端 上輸入sudo vim etc mysql mysql.conf.d mysqld.cnf,進入到這個配置檔...

MySQL8 0修改密碼問題

mysql5.7和之前的使用者修改密碼方式 mysql uroot e set password password 123 mysql uroot p123.com e use mysql update user set authentication string password 456 wher...