首先准备两台服务器,并且在服务器中安装mysql
先克隆一个虚拟机,更改克隆后的ip,让两个地址不相同;
启动虚拟机,查看防火墙,开放3306端口;
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --list-ports
将两台数据库启动起来:
systemctl start mysqld
登录mysql,验证是否正常启动:
主库配置: 修改Mysql数据库的配置文件 vim /etc/my.cnf
在[mysqld]下方增加配置:
[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志
server-id=200 #[必须]服务器唯一ID(唯一即可)
重启mysql:
systemctl restart mysqld
登录mysql,并执行如下指令,创建用户并授权:
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
注:'xiaoming'和'Root@123456' 不是固定的;
如果遇到以下的报错:
重新设置下密码:
alter user 'root'@'localhost' identified by 'Root@123456';
登录Mysql数据库,查看master同步状态**
执行下面SQL,记录下结果中**File**和**Position**的值
show master status;
==注:上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作==
不然数据可能会有变动;
从库配置:
修改Mysql数据库的配置文件 vim /etc/my.cnf
在[mysqld]下添加以下配置
server-id=201 #[必须]服务器唯一ID
重启Mysql服务:
systemctl restart mysqld
登录Mysql数据库,设置主库地址及同步位置 :
change master to master_host='192.168.253.133',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=154;
以上红框的数据记得根据自己的修改.
start slave;
查看从数据库的状态:
show slave status;
可以将以上代码复制到notepade中打开浏览:
必须要两个yes才可以 .
如果slave_io_running显示的是No,或者connection,
需退出mysql,然后输入
vim /var/lib/mysql/auto.cnf
将最后的8随便换个数字,然后保存退出,重启虚拟机,登录mysql ,
然后输入:
stop slave;
再执行一遍一下操作:
就会显示两个yes了.
最后就可以测试了
在navicat中创建两个连接,主库和从库:(ip要和上面的对应)
在主库master连接中随便创建一个数据库rw,然后刷新从库slave,从库也会自动创建出一个rw数据库
在主库中的数据库中随便创建一个表格 ,从库也会自动同步创建.
over~~~~~