一主一从同步结构
数据库服务器 192.168.4.51 配置为master服务器
数据库服务器 192.168.4.52 配置为 slave服务器
第一步 配置master服务器 192.168.4.51
具体步骤如下:
1) 启用binlog日志文件
vim /etc/my.cnf
[mysqld]
server_id=51
log_bin=master51 #日志默认存储在数据库目录下
:wq
]# systemctl restart mysqld
2)用户授权
]# mysql -uroot -p密码
replication slave 让用户有复制命令权限
mysql> grant replication slave on *.* to repluser@"%"
identified by "123qqq...A";
3)查看日志信息
#查看到的日志名和偏移量是给 从服务器使用的
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| master51.000001 | 441 | | | |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
第二步 配置slave服务器 192.168.4.52
具体步骤如下:
1) 指定server_id 并重启mysqld服务
vim /etc/my.cnf
[mysqld]
server_id=52 #自己添加的
:wq
systemctl restart mysqld
2)确保数据一致(如果一致的此步骤可以省略)
3)指定主服务器信息
]#mysql -uroot -p密码
mysql> show slave status \G #不是从数据库服务器
Empty set (0.00 sec)
mysql> change master to master_host="192.168.4.51",
master_user="repluser" , master_password="123qqq...A",
master_log_file="master51.000001" , master_log_pos=441 ;
4)启动slave进程
mysql> start slave;
5)查看状态 (IO线程和 SQL线程必须同时是YES 状态)
mysql> show slave status \G
Master_Host: 192.168.4.51
Master_User: repluser
Master_Port: 3306
Master_Log_File: master51.000001
Slave_IO_Running: Yes #IO线程
Slave_SQL_Running: Yes #SQL线程
根据 IO线程和 SQL线程的报错信息排错
mysql> show slave status \G
Last_IO_Error: IO线程的报错信息
Last_SQL_Error: SQL线程的报错信息
测试主从同步的配置
1)在主服务器host51 建库建表 插入记录
mysql> create database db1;
create table db1.t1(id int);
insert into db1.t1 values(119);
insert into db1.t1 values(120);
insert into db1.t1 values(114);
2) 在从服务器host52 可以查看到同样的数据
mysql -uroot -p123qqq...A -e 'select * from db1.t1'
mysql: [Warning] Using a password on the command line interface can be insecure.
+------+
| id |
+------+
| 119 |
| 120 |
| 114 |