上篇文章,把 MySQL 服务环境搭建好了,这篇文章来写一下 MySQL 主从配置。
my.master.cnf:
[mysqld]
log-bin = mysql-bin # 二进制日志文件名
server-id = 1 # 服务器ID
expire-logs-days = 7 # (可选) 日志有效期[天]
replicate-do-db = test # (可选) 要复制的数据库
binlog-ignore-db = mysql # (可选) 忽略的数据库
binlog-ignore-db = information_schema
my.slave.cnf:
[mysqld]
log-bin = mysql-bin # (可选) 二进制日志文件名
server-id = 2 # 服务器ID
replicate-do-db = test # (可选) 要复制的数据库
binlog-ignore-db = mysql # (可选) 忽略的数据库
replicate-ignore-table = mysql.user # (可选) 忽略的表
read_only = 1 # 只读
登入到 Master,执行:
# 授权 alh@192.168.2.103, 密码为 abcd1234
grant replication slave on *.* to 'alh'@'192.168.2.103' identified by 'abcd1234';
flush privileges;
查看 Master 的状态
show master status;
+------------------+----------+--------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+--------------------------+
| mysql-bin.000001 | 245 | | mysql,information_schema |
+------------------+----------+--------------+--------------------------+
1 row in set (0.00 sec)
然后切换到 Slave,执行:
change master to
master_host = '192.168.2.103', # Master的IP
master_user = 'alh', # 刚才授权的账号
master_password = 'abcd1234', # 刚才授权账号的密码
master_log_file = 'mysql-bin.000001', # 上面状态中的 `File` 字段
master_log_pos = 245; # 上面状态中的 `Position` 字段
启动 Slave
start slave;
#stop slave # 终止Slave
最后,查看状态是否正常
show slave status \G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes