1. [Warning] World-writable config file ‘/etc/mysql/conf.d/my.cnf’ is ignored.
警告任何用户都可以修改配置文件,太不安全,所以Mysql把这个配置文件忽略了。 文件权限太高,需要降低文件权限。本错误是在docker容器中出现的,所以需要进入docke容器中执行以下命令。
|
|
2. mysql> show master status; 命令报错语法错误
报错如下:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘master status’ at line 1
困扰了很久,最终找到了原因,是mysql版本问题,我使用的是mysql 8.4,show master status;
已经被废弃,使用SHOW BINARY LOG STATUS;
代替
具体查看官方说明,https://dev.mysql.com/doc/refman/8.4/en/show-master-status.html
3. mysql> change master to master_host=‘172.17.0.2’,master_port=3306,master_user=‘root’,master_password=‘123456’,master_log_pos=158,master_log_file=‘mysql-master-bin.000002’; 设置主从关系时报语法错误
错误提示如下:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘master to master_host=‘172.17.0.2’,master_port=3306,master_user=‘root’,master_pa’ at line 1
经查阅,也是版本问题,change master to
已经在MySql8中被CHANGE REPLICATION SOURCE TO
取代,https://dev.mysql.com/doc/refman/8.4/en/replication-howto-slaveinit.html。
4. (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3316 -> 0.0.0.0:0: listen tcp 0.0.0.0:3316: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
5. Public Key Retrieval is not allowed
使用数据库客户端DBeaver连接mysql时,报错如下:Public Key Retrieval is not allowed
。
“Public Key Retrieval is not allowed” 错误是由于 MySQL 连接驱动程序的默认行为更改所引起的。在 MySQL 8.0 版本及更新版本中,默认情况下禁用了通过公钥检索用户密码的功能。
在旧版本的 MySQL 中,客户端连接到服务器时,可以使用公钥来检索用户密码。这种机制称为 “public key retrieval”,它允许客户端使用公钥来解密在服务器端加密的密码。
然而,为了提高安全性,MySQL 开发团队在较新的版本中禁用了这个功能。禁用公钥检索可以防止恶意用户通过获取公钥来获取用户密码。相反,客户端必须使用其他安全的方法来进行身份验证,例如使用预共享密钥或使用 SSL/TLS 连接。
解决方式1. 修改DBeaver中的驱动属性的参数为allowPublicKeyRetrieval=true
参考https://blog.csdn.net/qq_33472553/article/details/139107958:。但是这种方式会导致主从模式的数据库集群同步失败,报错见第6点,也即是认证需要安全连接。
6. 从数据库没有同步主数据库的数据,通过show replica status\G
发现报错: Last_IO_Error: Error connecting to source ‘root@172.17.0.2:3306’. This was attempt 10/10, with a delay of 60 seconds between attempts. Message: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.
|
|
7. MySql主从集群,从服务器同步报错: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction ‘ANONYMOUS’ at source log mysql-master-bin.000004, end_log_pos 35
当前我的分析及解决步骤如下:
- 查看从节点的日志文件,发现报错信息如下:
|
|
- 观察到报错信息,发现报错信息提示,删除数据库数据库不存在。因为第一次实践时,创建数据库redisDemo时没有同步成功,所以在主节点执行了
drop database redisDemo
。 - 为了保持数据操作同步,需要将之前创建的语句手动在从节点执行一下
create database redisDemo;
。 - 创建数据库之后,
stop replica;
关闭主从同步,然后再start replica;
开启主从同步,即可解决从节点同步报错的问题。show replica status\G;
查看从节点正常。