数据库版本:MySQL8.0.26
sysbench版本:sysbench 1.0.17
CentOS版本:CentOS Linux release 7.9.2009 (Core)
问题一:FATAL: error 2059: Authentication plugin ‘caching_sha2_password’ cannot be loaded
执行
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=% --mysql-port=3306 --mysql-user=root --mysql-password='123456' --mysql-socket=/var/lib/mysql/mysql.sock --mysql-db=sbtest --db-driver=mysql --tables=10 --table-size=50000 --threads=10 prepare
报错
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
原因
网上查到的答案,链接https://lefred.be/content/sysbench-for-mysql-8-0/,关键在于加密默认插件改了,从 mysql_native_password 到 caching_sha2_password了
官网解释https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-4.html
解决方法
修改加密方式mysql_native_password,注意密码也要跟着重新设置一次。
ALTER USER 'root'@'%' IDENTIFIED with mysql_native_password BY '123456' PASSWORD EXPIRE NEVER;
问题二:FATAL: error 1044: Access denied for user
这个问题是在我新增了账户和数据库进行新的测试时出现的
报错
FATAL: error 1044: Access denied for user 'username'@'%' to database 'dbname';
原因
远程连接用户权限不足,直接原因是创建远程连接用户 ‘usernameroot@%’ 时,没有添加访问数据库的权限。
解决方法
赋予所有权限,有需要的可以对照权限表单独赋权限,官网文档:https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html
grant all privileges on *.* to 'username'@'%' with grant option;
flush privileges;