准备环境
两台安装了MySQL的服务器
A: 192.168.3.81 作为master,没有数据 B: 192.168.3.82 作为slave,没有数据
主服务器
修改服务配置文件
vim /etc/my.conf
添加如下参数
[mysqld] log-bin=mysql-bin server-id=1
修改完配置文件,重启MySQL
systemctl restart mysqld
增加用户,授权给从服务器
mysql -uroot -p grant replication slave on *.* to 'slave'@'192.168.3.82' identified by '123456';
查询主数据库的状态
show master status;
从服务器
修改配置文件
vim /etc/my.conf
添加
log-bin=mysql-bin server-id=2
保存后,重启MySQL
systemctl restart mysqld
登录MySQL
mysql -uroot -p change master to master_host='192.168.3.81',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=651;
master_log_file和master_log_pos的值是根据查看主数据库的状态设置的
设置从库只读, 并启动slave
set global super_read_only=1;
启动slave
mysql> start slave;
检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。
mysql> show slave status\G
验证
验证方法:去主服务器上新建一个数据库,然后登录从服务器看看刚才在主服务器新建的数据库在不在
先在192.168.3.81上创建test数据库,然后查看192.168.3.82上是否同步创建了一个。