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下添加。修改之后重启
[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;