mysql主从复制的步骤
master端192.168.200.77
1.在/etc/my.cnf里添加
[mysqld]
log-bin=mysql-bin
server-id=1
2.查看设置是否生效
一、在data目录是否有mysql-bin.000001文件和mysql-bin.index文件
二、mysql> show variables like '%log_bin%';
+---------------------------------+---------------------------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------------------------+
| log_bin | ON |
| log_bin_basename | /application/mysql/data/mysql_log_bin |
| log_bin_index | /application/mysql/data/mysql_log_bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+---------------------------------------------+
6 rows in set (0.02 sec)
3.添加mysql用户,给slave连接使用
mysql> grant replication slave on *.* to 'rep'@'%' identified by 'oldboy123';
mysql> flush privileges;
4.备份主库数据库
1.flush table with read lock;
2.另开一个窗口
mysqldump -uroot -poldboy -A -B --master-data=2 >/tmp/mysql_all_B.sql
可以查看bin-log信息
mysql>show master status;
mysql>show master logs;
3.unlock tables;
#########################################################################
salve端192.168.200.88
1.修改/etc/my.cnf里添加
[mysqld]
server-id=2
2.mysql -uroot -poldboy </tmp/mysql_all_B.sql
3.change master to
master_host='192.168.200.77',
master_port=3306,
master_user='rep',
master_password='oldboy123',
master_log_file='mysql_log_bin.000035',
master_log_pos=408;
查看cat /application/mysql/data/master.info
4.start slave;
show slave status\G;
Slave_IO_Running:YES
Slave_SQL_Running:YES
有2个YES就说明成功了
在master端插入记录,再到slave端看有没有同步过来
备注:
--master-data=1 适用于从库还原,有change master语句,在slave端使用change master
时可以不用加上master_log_file,master_log_pos语句
--master-data=2 change master语句被注释了
在slave端设置read-only的注意事项(读写分离)
1.在master端添加用户时,权限应符合最小权限,不应该添加ALL或REPLICATION SLAVE
一般只给select,insert,update,delete权限,记得要flush privileges。
2.在slave端/etc/my.cnf的[mysqld]里添加read-only,后必须重启mysql。
mysql主从同步配置步骤
1.准备两台数据库环境,或者单台多实例环境,并能正常启动和登录。
2.配置my.cnf文件,主库配置log-bin和server-id参数,从库配置server-id,
不能和主库和其它从库一样,一般不开启从库log-bin功能。注意:配置参数
后要重启才能生效。
3.登录主库增加用于从库连接主库同步的账户例如:rep,并授权replication slave
同步的权限。
4.登录主库,整库锁表flush table with read lock(窗口关闭后即失效,超时参数到了也失效),
然后show master status查看binlog的位置状态。
5.新开窗口,linux命令行备份或导出原有的数据库数据,并拷贝到从库所在服务器目录。
6.解锁主库unlock tables。
7.把主库导出的数据库恢复到从库服务器。
8.根据主库的show master status查看binlog的位置状态,在从库执行change master to语句。
9.从库开启同步开关,start slave.
10.从库show slave status\G 检查同步状态,并在主库进行更新测试。
转载于:https://blog.51cto.com/hdl993101/1976763