-
从
MySql
中读数据时报错:Unable to load authentication plugin 'caching_sha2_password'.
原因:MySql
的加密规则导致的,解决方法参考
#解决办法,进入数据库,执行如下语句修改加密规则为永久访问
>mysql ALTER USER 'root'@'%' IDENTIFIED BY '******' PASSWORD EXPIRE NEVER;
>mysql ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '******';
>mysql FLUSH PRIVILEGES;
>mysql alter user 'root'@'%' identified by '******';
-
往
MySql
中写入数据时报错:Could not retrieve transation read-only status server
原因:数据库版本和驱动版本不一致
解决方法:
查看datax插件中的mysql驱动版本是否和自己安装的mysql版本一致
cd到datax目录下:然后查看datax/plugin/writer/mysqlwriter/libs/
下面的插件版本,如下图
如上图所示,驱动版本为5.1.34,而我mysql的版本是8.0.16,所以下载对应的mysql驱动,我这里下载8.0.19解压,然后将jar包移至lib目录下,并删除旧版本驱动:
至此,问题解决,如果上述还不能解决问题,需要查看一下数据库隔离级别,方式如下:
#进入数据库,查看隔离级别
>mysql SHOW VARIABLES LIKE '%iso%';
+-----------------------+----------------+
| Variable_name | Value |
+-----------------------+----------------+
| transaction_isolation | READ-COMMITTED |
+-----------------------+----------------+
#如果结果不是 "READ-COMMITTED"则需要修改隔离级别
>mysql set transaction_isolation='READ-COMMITTED';