linux配置mysql主从复制
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;