mysql主从报错:Last_IO_Error: Error connecting to source解决方法

目录

报错

处理方法

1.从库停止同步

[2.主库修改my.cnf 生效配置default-authentication-plugin=mysql_native_password](#2.主库修改my.cnf 生效配置default-authentication-plugin=mysql_native_password)

3.重启服务重新创建复制用户

4.重新同步

5.测试主从


报错

Last_IO_Error: Error connecting to source 'repl_user@192.168.213.15:3306'. This was attempt 3/86400, with a delay of 60 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

处理方法

1.从库停止同步

mysql> stop slave;

Query OK, 0 rows affected, 2 warnings (0.00 sec)

2.主库修改my.cnf 生效配置default-authentication-plugin=mysql_native_password

[root@ms-server1 ~]# vi /etc/my.cnf

For advice on how to change settings please see

http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]

Remove leading # and set to the amount of RAM for the most important data

cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

innodb_buffer_pool_size = 128M

Remove the leading "# " to disable binary logging

Binary logging captures changes between backups and is enabled by

default. It's default setting is log_bin=binlog

disable_log_bin

Remove leading # to set options mainly useful for reporting servers.

The server defaults are faster for transactions and fast SELECTs.

Adjust sizes as needed, experiment to find the optimal values.

join_buffer_size = 128M

sort_buffer_size = 2M

read_rnd_buffer_size = 2M

Remove leading # to revert to previous value for default_authentication_plugin,

this will increase compatibility with older clients. For background, see:

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin

--把这行注释去掉
default-authentication-plugin=mysql_native_password

bind-address=0.0.0.0

default-storage-engine=Innodb

innodb_buffer_pool_size = 2048M

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

server_id=1

log-bin=mysql-bin

3.重启服务重新创建复制用户

[root@ms-server1 ~]# systemctl restart mysqld

删除之前创建的复制用户

mysql> drop user 'repl_user'@'%' ;

Query OK, 0 rows affected (0.01 sec)

重新创建用户

use mysql

create user 'repl_user'@'%' identified by 'Antute_123';

grant replication slave on *.* to 'repl_user'@'%';

flush privileges;

4.重新同步

主库查看新状态

show master status\G;

mysql> show master status\G;

*************************** 1. row ***************************

File: mysql-bin.000003

Position: 1023

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

ERROR:

No query specified

从库修改my.cnf配置 default-authentication-plugin=mysql_native_password

[root@ms-server2 ~]# vi /etc/my.cnf

[root@ms-server2 ~]# cat /etc/my.cnf

[mysqld]

default-authentication-plugin=mysql_native_password

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

server_id=2

log-bin=mysql-bin

重启数据库服务

[root@ms-server2 ~]# systemctl restart mysqld

按照主库当前的状态进行复制

CHANGE MASTER TO MASTER_HOST='192.168.213.15', MASTER_USER='repl_user' ,MASTER_PASSWORD='Antute_123',MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=1023;

mysql> stop slave;

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> CHANGE MASTER TO MASTER_HOST='192.168.213.15', MASTER_USER='repl_user' ,MASTER_PASSWORD='Antute_123',MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=1023;

Query OK, 0 rows affected, 8 warnings (0.01 sec)

mysql> start slave;

Query OK, 0 rows affected, 1 warning (0.01 sec)

重新查看状态同步正常

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for source to send event

Master_Host: 192.168.213.15

Master_User: repl_user

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000003

Read_Master_Log_Pos: 1023

Relay_Log_File: ms-server2-relay-bin.000002

Relay_Log_Pos: 326

Relay_Master_Log_File: mysql-bin.000003

Slave_IO_Running: Yes --显示yes为正常

Slave_SQL_Running: Yes --显示yes为正常

5.测试主从

主库

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| antute_db |

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

5 rows in set (0.00 sec)

mysql> use antute_db;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql>

mysql> show create table user\G;

*************************** 1. row ***************************

Table: user

Create Table: CREATE TABLE `user` (

`id` int NOT NULL AUTO_INCREMENT,

`username` varchar(255) DEFAULT NULL COMMENT '用户名',

`role_id` int DEFAULT NULL COMMENT '角色id',

`password` varchar(255) DEFAULT NULL COMMENT '密码',

`salt` varchar(255) DEFAULT NULL COMMENT '盐',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=37794282 DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

ERROR:

No query specified

主库插入一条数据

mysql> insert into user values(1001,'dadada',10010,'abcd123','ssss');

Query OK, 1 row affected (0.00 sec)

从库查询该表

mysql> use antute_db

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

查询无误同步正常

mysql> select * from user;

+------+----------+---------+----------+------+

| id | username | role_id | password | salt |

+------+----------+---------+----------+------+

| 1001 | dadada | 10010 | abcd123 | ssss |

+------+----------+---------+----------+------+

1 row in set (0.00 sec)

mysql>

相关推荐
mmsx15 分钟前
android sqlite 数据库简单封装示例(java)
android·java·数据库
zpjing~.~1 小时前
Mongo 分页判断是否有下一页
数据库
2401_857600951 小时前
技术与教育的融合:构建现代成绩管理系统
数据库·oracle
2301_819287122 小时前
ce第六次作业
linux·运维·服务器·网络
秋恬意2 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
CIb0la2 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息2 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20152 小时前
STUN服务器实现NAT穿透
运维·服务器
潇湘秦2 小时前
一文了解Oracle数据库如何连接(1)
数据库·oracle
雅冰石2 小时前
oracle怎样使用logmnr恢复误删除的数据
数据库·oracle