MySql的主从配置
一、两台ubuntu机器(可以使用VMWare虚拟机),并保证相互之间可以ping通,都装有musql并保证mysql版本尽量一致 我的主数据库版本为5.5.43 从数据库版本为5.5.32
二、进入主数据库并给从数据库给予登录主数据库的权限:grant replication slave on *.* to 'username'@'192.168.X.X' indetfied by 'pwd' with grant option;
三、修改my.conf文件 vim /etc/mysql/my.conf
binlog-do-db:需要同步的数据库,可以填写多个 server-id不能重复 修改并保存 :wq!
四、在主服务器重启mysql service mysql restart; 再进入mysql执行 show master status;
File和Position需要在从数据库上使用,请保存下来。
五、在配置从服务器之前先保证将主服务器的数据库dump出来:
mysqldump -uroot -p****** zhuxin > /home/zhuxin/Desktop/dump1.sql
mysqldump -uroot -p****** master_slave_test > /home/zhuxin/Desktop/dump2.sql
//将dump出来的文件复制到从服务器上
scp dump1.sql [email protected].*.**:/home/slave/Desktop
scp dump1.sql [email protected].*.**:/home/slave/Desktop
接下来就修改从数据库的my.conf文件了 vim/etc/mysql/my.conf
replicate-do-db需要同步的数据库,修改并保存 :wq!
六、进入从数据库 create database zhuxin; create database master_slave_test;
use zhuxin;source /home/slave/Desktop/dump1.sql;
use master_slave_test; source /ome/slave/Desktop/dump2.sql
七、重启从服务器的mysql service mysql restart
八、进入从数据库 slave stop;
change master to master_host='192.168*.**',master_user='username',master_password='pwd',
master_log_file='binarylog.000025' ,master_log_pos=1337;
slave start;
show slave status;
看见Slave_IO_Running: YEs
Slave_SQL_Running: YES
则证明主从配置成功
九、验证主从配置是否成功、在主数据库上添加数据,在从服务器可以看见同步过来的数据。
十、注意事项:
1、在从服务器上添加数据会破坏主从结构
2、主从设计的目的就是为了读写分离,减少锁竞争,提高mysql的性能,在主数据库进行(IUD)操作,在从数据库进行查询
3、在从数据库可以创建索引,提高查询效率,但是不可以在从服务器创建约束(唯一约束、非空约束)这样会导致主从结构破坏。