- 准备
- 步骤
- 1、建立账号并授权
- 2、 修改两个数据库的配置文件
- 3、分别重启Master A 和 Master B的mysql服务
- 4、分别查看两个实例的master状态
- 5、分别在两个实例上执行change master指令,指定同步位置:
- 6、解锁两个数据库实例的表和启动从服务器线程
- 7、分别查看从服务器状态
- 附:数据库一些基本的操作:
准备两台电脑,都安装上window服务器系统2019,mysql服务器,8.0以上版本
1、服务器A:IP:10.114.200.222
2、服务器B:IP:10.114.200.223
在主机A上:
CREATE USER 'repl'@'10.114.200.223' IDENTIFIED WITH mysql_native_password BY 'repl2021'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.114.200.223'; flush privileges;
在主机B上:
CREATE USER 'repl'@'10.114.200.222' IDENTIFIED WITH mysql_native_password BY 'repl2021'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.114.200.222'; flush privileges;2、 修改两个数据库的配置文件
分布更改两台设备上的数据库配置文件my.ini,注意得先删掉配置里面存在server-id 和 log-bin项目,要先删掉原来的,修改配置文件保存时,一定要保存ANSI格式的文件,不然mysql服务器重启不了。
在主机A上:
log-slave-updates
server-id=1
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
slave-skip-errors=all
log-bin=mysql-bin
在主机B上:
log-slave-updates
server-id=2
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
slave-skip-errors=all
log-bin=mysql-bin
在主机A上:
mysql> flush tables with read lock;#防止进入新的数据 Query OK, 0 rows affected (0.00 sec) mysql> show master statusG; *************************** 1. row *************************** File: mysql-bin.000001 Position: 156 Binlog_Do_DB: db_rocky Binlog_Ignore_DB: mysql 1 row in set (0.00 sec)
在主机B上:
mysql> flush tables with read lock;#防止进入新的数据 Query OK, 0 rows affected (0.00 sec) mysql> show master statusG; *************************** 1. row *************************** File: mysql-bin.000002 Position: 157 Binlog_Do_DB: db_rocky Binlog_Ignore_DB: mysql 1 row in set (0.00 sec)5、分别在两个实例上执行change master指令,指定同步位置:
在主机A上:
mysql> change master to master_host='10.114.200.223',master_user='repl',master_password='repl2021', master_log_file='mysql-bin.000002',master_log_pos=157
在主机B上:
mysql> change master to master_host='10.114.200.222',master_user='repl',master_password='repl2021', master_log_file='mysql-bin.000001',master_log_pos=1566、解锁两个数据库实例的表和启动从服务器线程
mysql> unlock tables; Query OK, 0 rows affected (0.00 sec) mysql> start slave; Query OK, 0 rows affected (0.00 sec)7、分别查看从服务器状态
Master A上:
mysql> show slave statusG; *************************** 1. row *************************** 主要关注以下 2 个参数: Slave_IO_Running: Yes Slave_SQL_Running: Yes
Master B上:
mysql> show slave statusG; *************************** 1. row *************************** 主要关注以下 2 个参数: Slave_IO_Running: Yes Slave_SQL_Running: Yes
四个参数都为YES,说明mysql同步配置成功。
附:数据库一些基本的操作:登录用户:mysql -uroot -p; 分配远程权限(适合8.0以上版本): update mysql.user set host = '%' where user = 'root'; 刷新权限: flush privileges; 查询用户列表 select host,user,plugin,authentication_string from mysql.user; 创建用户(WITH mysql_native_password 是可选的,为了适应客户端兼容性) CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; 设置/修改密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; ALTER USER 'root'@'localhost' IDENTIFIED BY '密码'; alter user 'yzd'@'%' identified by 'aaa'; 清除密码 ALTER USER 'root'@'localhost' IDENTIFIED BY ''; UPDATe user SET authentication_string='' WHERe user='root'; 删除用户 drop user 用户名@ localhost; Delete FROM mysql.user Where User="用户名" and Host=”localhost”; 创建数据库 CREATE DATAbase IF NOT EXISTS yzd DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 查询数据库列表 show databases; 查询数据表列表 show tables; 查询当前用户名 select user(); 查询当前用户权限 show grants;



