1. 准备工作, 2 台服务器都安装最好一个版本的 mysql
主: 192.168.100.1
从: 192.168.100.2
a. 修改主数据库 / etc/my.cnf,mysqld 下添加. 修改之后重启.
- [mysqld]
- server-id=1
- log-bin=mysqlmaster-bin.log
b. 修改从数据库 / etc/my.cnf,mysqld 下添加. 修改之后重启
- server-id=2
- log-bin=mysqlmaster-bin.log
2. 主库操作
主库创建用于主从复制的账户
- mysql>create user sync@'192.168.100.2' identified by 'sync';
- mysql>grant replication slave on *.* to sync@'192.168.100.2';
- # 注意 192.168.100.2 为从库的 ip 地址, 换成实际的. 我设置的主从账户何密码都为 sync, 可以更换.
. 主库锁表, 禁止再插入数据以获取主数据库二进制日志坐标.
mysql> flush tables with read lock;
新开一个会话窗口, 进入 mysql 库, 执行
- mysql> show master status;
- mysql> SHOW MASTER STATUS;
- +------------------------+----------+--------------+------------------+-------------------+
- | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
- +------------------------+----------+--------------+------------------+-------------------+
- | mysqlmaster-bin.000001 | 500 | | | |
- +------------------------+----------+--------------+------------------+-------------------+
- 1 row in set (0.00 sec)
- # 记录 file 和 position, 稍后需要在从库配置
主服务器使用 mysqldump 命令创建数据快照
mysqldump -uroot -p -h127.0.0.1 -P3306 --all-databases --triggers --routines --events >/data/all.sql
主库解锁
mysql> unlock tables;
3. 从库服务器操作
- mysql -uroot -p -h127.0.0.1 -P3306 < all.sql
- # mysql -uroot -p
- mysql> CHANGE MASTER TO MASTER_HOST='192.168.100.1',MASTER_USER='sync',MASTER_PASSWORD='sync',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=500;
- # 然后启动从数据库的复制线程:
- mysql> start slave;
- # 查询数据库的 slave 状态:
- mysql> show slave status \G
- # 下面两个参数都是 Yes, 说明主从配置成功!
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
4. 测试, 从主库创建数据库和增删改查, 然后到从库去查看.
- ------------------------------------------end------------------------------------------------
- # 如果要清除主从配置, 需要进入从库执行 2 条命令;
- stop slave;
- reset slave all;
来源: https://www.cnblogs.com/xuekun/p/9517161.html