Mysql之主从复制
主服务器IP :192.168.153.143
从服务器IP :192.168.153.144
配置步骤:
1、确保主数据库与从数据库内数据一模一样
2、在主数据库上创建同步账号。
mysql > GRANT REPLICATION SLAVE,FILE ON *.* TO 'msuser'@'192.168.253.%' IDENTIFIED BY '123456';
mysql > FLUSH PRIVILEGES;
192.168.153.%: 运行使用该用户的IP地址
msuser:是新创建的用户名
123456:是新创建的用户名的密码
3、配置主数据库的my.ini(因为是在window下,所以是my.ini不是my.cnf)
[mysqld] server-id=143 //方便区分(通常用IP最后几位数字) log-bin=mysql-bin //二进制日志文件 mysql-bin.xxxxxx binlog-format=mixed //二进制文件格式 row/statement//mixed //row 二进制记录的是磁盘变化 (磁盘变化少) //statement 二进制记录执行语句,如insert...(磁盘变化大) binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
binlog-ignore-db=mysql //要忽略的数据库
配置完成 重启mysql
4、配置从数据库的my.ini(在window下,所以是my.ini不是my.cnf)。
[mysqld] server-id=144 log-bin=mysql-bin //二进制日志文件 mysql-bin.xxxxxx 起备份作用 relay-log=mysql-relay //二进制日志文件 mysql-relay.xxxxxx日志 replicate-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
binlog-format=mixed
master-host=192.168.153.143 master-user=msuser //第一步创建账号的用户名 master-password=123456 //第一步创建账号的密码 master-port=3306 master-connect-retry=60 replicate-ignore-db=mysql //要忽略的数据库
配置完成 重启mysql
从服务器需要进行跟踪
mysql > change master to > master_host = '192.168.153.143' , > master_user = 'msuser', > master_password = '123456', > master_log_file=mysql-bin.000019, //在主服务器中show master status;查看file并替换此处 > master_log_pos = 352; //在主服务器中show master status;查看position并替换此处
5、启动主从
mysql > start slave;
6、验证是否成功
mysql > show slave status \G
如果slave_io_running和slave_sql_running都为yes,那么表明可以成功同步了
6、测试同步数据。
进入主数据库输入命令:
use city;
insert into city(name) values('beijing');
然后进入从服务器数据库输入命令:select * from city;
如果此时从数据库有获取到数据,说明同步成功了,主从也就实现了
7、断掉主从
mysql > stop slave;