MYSQL主从复制的必要性不用多言,提高性能,一主多从,多主多从,感觉有点乱啊!(*^▽^*)

具体怎么配置,我们就演示一下一主多从吧:

1、准备两台linux服务器,如果没有的自己买或者开两个vmware配置一下就行,这里就不多说了;

2、两台服务器安装好MYSQL环境,至少8.0吧,低版本也行,但是容易出问题。数据库版本号保持一致。

3、选一台做主服务器,创建一个账户;可以不用命令行,用Navicat工具直接创建用户赋予以下权限,如果不清楚在测试环境下直接勾选所有权限也行。

CREATE USER test identified with mysql_native_password by '123456';

grant REPLICATION CLIENT ON *.* TO test;
grant REPLICATION SLAVE ON *.* TO test;
grant SUPER ON *.* TO test;
grant reload on *.* to test;
FLUSH PRIVILEGES;

4、修改MYSQL配置文件

/etc/mysql/mysql.conf  

# bind-address          = 127.0.0.1    注释掉

server-id               = 1

server-id 这个不能重复,你可以自定义名字,但一定保持唯一性;

修改完毕后重启数据库;

5、分配一个主从复制的权限给我们的test用户

grant replication slave on *.* to test;
FLUSH PRIVILEGES;

show master status;

mysql主从没复制 mysql主从复制过程_服务器

可以看到我们主库相关信息内容,文件,偏移数。这两个是重点,后面需要复制这两个。

6、接下来,我们开始配置从库

change replication source to SOURCE_HOST='192.168.0.2',SOURCE_USER='test',SOURCE_PASSWORD='123456',SOURCE_LOG_FILE='mysql-bin.000005',SOURCE_LOG_POS=1952;

 这里分别是主服务器的IP,账户,密码,需要复制的二进制文件以及偏移量数字;

7、开启服务

start replica; 开启服务  如果配置有问题 就  stop replica 然后在开启

show replica status\G;  查看配置详情

mysql主从没复制 mysql主从复制过程_mysql_02

Replica_IO_Running和Replica_SQL_Running必须同时为Yes才行,从库会创建两个线程,一个线程负责与主库进行通信,获取二进制日志,存放到中间表,另一个线程则是将中间表保存的二进制日志的信息进行执行,存入从库中。

至此,我们主从复制已经完成,如果要开启多个从库,就增加配置就行,server_id不能重复。现在可以在主库任何操作,从库都可以完成。新增一台从库一定要和主库保持一致,不然各种问题。

主从设置好,后面可以通过shardingJDBC进行配置,让所有写入操作进行主库,读在从库。