FATAL error 2059 Authentication plugin caching_sha2_password cannot be loaded

1、報錯

# 執行sysbench
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1  --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=sbtest --db-driver=mysql --tables=5 --table-size=500000 --report-interval=3 --time=3000 --threads=6  --max-requests=0  prepare

# 報錯
FATAL: unable to connect to MySQL server on host '127.0.0.1', port 3306, aborting...
(last message repeated 1 times)
FATAL: error 2059: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

# MySQL版本檢查
> mysql
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: **8.0.20** MySQL Community Server - GPL

2、原因

找原因
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-4.html 8.0.4的官方release

注意2點:第一不兼容;第二默認插件改了,從 mysql_native_password 到 caching_sha2_password了
在這裏插入圖片描述

3、解決

https://github.com/akopytov/sysbench/issues/244

https://lefred.be/content/sysbench-for-mysql-8-0/

  • 修改使用原來的的mysql_native_password方式[爲了兼容原版,這個操作最快]
  • 編譯sysbench linking it to mysql-community-libs-8.0.x (/usr/lib64/mysql/libmysqlclient.so.21)
  • wget sysbench文件[這裏還是需要新版的MySQL的]

4、疑問:爲啥直接MySQL可以,而使用sysbench才報錯呢

在這裏插入圖片描述

/usr/share/sysbench/oltp_common.lua:83 行報錯

81 function cmd_prepare()
 82    local drv = sysbench.sql.driver()
 83    local con = drv:connect()

在這裏插入圖片描述

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