我是目录
- 主从复制是什么?
- 操作实践
- 验证主从设置
主从复制是什么?
mysql主从复制是一个异步的复制过程,底层是基于mysql数据库自带的二进制日志功能。就是一台或多台mysal数据库(slave,即从库)从另一台mysql数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。Mysql主从复制是Mysql数据库自带功能,无需借助第三方工具。
操作实践
我这里主库是linux,从库是windows系统的,可以参考操作
-
配置前提条件
准备好两台服务器,分别安装MySQL并启动服务。主库mater,从库Slave
-
修改配置文件(主库)
在/etc/my.cnf下添加一下信息,如图,(第一句意味启用二进制日志,第二句为设置服务器唯一ID)
[mysqld] log-bin=mysql-bin server-id=100
修改完了要重启数据库一下
systemctl restart mysqld
-
登录mysql,执行下面的sql(主库)
mysql -u用户名 -p密码 GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
该sql的作用是创建一个用户xiaoming,密码为Root@123456,并且给xiaoming赋予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。
-
查看主库状态,修改从库配置文件
show master status;
记住这个position
给从库设置ID,并且重启从库mysql,在/mysql/my.ini里面
window重启mysql操作
net start mysql; net stop mysql;
-
在从库中执行下面的操作(记得将单引号中的数据修改为自己的数据)
change master to master_host='8.134.98.51',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=441;
开启slave
start slave;
-
查看从库数据库状态
show slave status\G;这样就竖着输出,不会乱
如图,这样子就设置好了
验证主从设置
分别连接两个数据,从主库中完成增删改数据库,表,数据的操作,看从库是否同步。