E9 Mysql主从复制
- 在主计算机和从计算机之间复制数据库。主从复制的作用:
- 做热数据备份,作为备份数据库,主数据库服务器出现故障,可以切换到从数据库继续工作,避免数据丢失。
- 体系结构的扩展。业务量不断增加,I/O访问频率过高,单台机器无法满足,此时要做多库存储,降低磁盘I/O访问频率,提高单台机器的I/O性能。
- 读写分离使数据库能够支持更大的并发性。因为有些报表SQL语句非常慢,导致锁定表,影响前台服务。
- 数据备份。
- Problem 1 创建M/S复制(单向)
Step 1 确保在主服务器中打开日志,以便在主服务器中发生数据更改时生成日志配置。
1.打开主服务器文件夹下的my.ini文件或者my.cnf(linux),添加或修改以下内容;
寻找my.cnf
which mysqld
/usr/sbin/mysqld --verbose --help |grep -A 1 ‘Default options’
vim /etc/mysql/mysql.conf.d/mysqld.cnf
service mysql restart
shift+: q+enter q!+enter wq+enter
2.验证日志文件已在主服务器中创建,请使用show master status命令查看当前正在使用的二进制日志和二进制日志的位置
show master status;
find / -name mysql-bin.000001
3.打开从库文件夹中打开my.ini文件,添加或修改以下内容。
Step 2 在主库上为从库机器创建一个访问帐户,并授予读取bin日志的权限
1.Create an account to copy data from the master
create user ‘rep’@‘123.157.19.34’ identified by ‘1234’;
grant replication slave on . to ‘rep’@‘123.157.19.34’;
show master status;
Step 3 从服务器上的root登录后连接主服务器
Mysql -u root -p
change master to master_host=‘129.204.106.77’,master_user=‘rep’,master_password=‘1234’,master_log_file=‘mysql-bin.000003’,master_log_pos=593;
mysql -h 129.204.106.77 -u rep -p
1、show slave status\G;
2、start slave;
show variables like ‘server_id’;
reset slave;
Step 4: 验证主从计算机之间的复制。
1、Create tables in the master, insert data, and query from the salve to see if replication has been synchronized
2、Delete data from master, and query from the salve to see if replication has been synchronized
在主服务器中创建数据库及表:
从服务器上进行相应的验证:
Problem 2 M/S 双向数据复制
Step 1:Base on the the single direction replication, repeat the procedure from inverse direction,that means taking the orignal slave as master, and taking the master as slave.
Step 2: Apply operations on the two sides respectively, and verify the results on the other side.
步骤1:在单向复制的基础上,从反方向重复该过程,即以从服务器为主,以主服务器为从。即双方地位对等。
步骤2:分别对两边进行操作,对另一边的复制结果进行验证。
步骤应该如上,但是我在操作中始终实现不了。