1.mysql主从复制听起来很复杂,其实只需要懂得怎么配置mysql的配置文件就可以了。
2.两个服务器ip分别为192.168.1.101,192.168.1.102,101的作为主服务器,102的为从服务器且都安装了相同版本的mysql数据库
3.原理:mysql主从复制是依靠二进制日志。主服务器A(101),从服务器B(102),A做什么B就跟着做什么,即A把所有的增删改查操作都写进日志文件里,B拿到这个日志,然后按照日志里的操作进行运行,这样B就和A同步了。
4.实现步骤:
4.1.修改mysql配置文件my.cnf
vim /etc/my.cnf
加入三行代码
log-bin=mysql-bin//将二进制文件取名为mysql-bin
binlog_format=mixed//二进制文件的格式
server-id=101//为服务器设置一个唯一id
保存:wq
重启mysql
进入从服务器的mysql配置文件,做上面相同的操作,把设为server_id=102
4.2.在主服务器上分配一个账号供从服务器连接
进入主服务器mysql;mysql -u root -p 123546
然后输入GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '1234';
replication slave//主从复制的权限
*.*//可以操作哪个数据库,这里是所有数据库
slave//用户名
%//可以在所有电脑端使用这个账号
123456//密码
4.3.查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变).
4.4.
设置从服务器
进入从服务器mysql
命令: # mysql -u root -p111111
关闭slave(如果你以前配置过主从的话,一定要先关闭)
命令:stop slave;
开始配置:
输入下面代码即可:
参数解释:MASTER_HOST : 设置要连接的主服务器的ip地址
MASTER_USER : 设置要连接的主服务器的用户名
MASTER_PASSWORD : 设置要连接的主服务器的密码
MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称,即第3步得到的信息
MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置,即第3步得到的信息,(这里注意,最后一项不需要加引号。否则配置失败)
先在从服务器配置完成,启动从服务器:
命令: start slave;
4.5.查看是否配置成功:
命令: show slave status;
上面两项均为yes,说明配置成功