CentoS7 安装篇八:mysql主从搭建

一、搭建环境

1.两台服务器 192.168.15.3(主库服务器) 192.168.15.4(从库服务器)

2.两台服务器都已经安装mysql服务,如果没有安装请参考一下连接安装

CentoS 7.8.2003 安装篇五:Mysql_mhi()的博客-CSDN博客

二、主库服务器mysql调整

 1.在mysql配置文件my.cnf内该  [mysqld]  位置添加以下参数

# 主从配置
server-id = 1  #服务器 id,随意,但要唯一
log-output=NONE
general-log=0
slow-query-log=0
long_query_time=10
log-bin =/jysoft/mysql/mysql-3406/data/mysql-bin    #二进制文件存放路径
binlog_format=row
expire_logs_days=20
#binlog-ignore-db=mysql  #不同步的数据库

2.创建同步操作专属账号

    

#登录
mysql -u root -p密码
#创建用户 我这里用户名为asyncuser,注意这里的ip是从库服务器的ip
CREATE USER 'asyncuser'@'192.168.15.4' IDENTIFIED WITH mysql_native_password BY '123456';
#给主从复制账号授权
grant replication slave on *.* to 'asyncuser'@'192.168.15.4';

3.重启主库mysql服务

   

/etc/init.d/mysql-3406 stop
/etc/init.d/mysql-3406 start

4.重启完毕之后,登录mysql服务,执行  以下命令

show master status;

CentoS7 安装篇八:mysql主从搭建_第1张图片

记录一下 File、Position值,从库配置需要;

到这里主库配置结束。

三、从库mysql服务调整

   1.调整mysql配置文件,同主库。具体参数有区别

server-id = 4
log-output=NONE
general-log=0
slow-query-log=0
long_query_time=10
log-bin =/jysoft/mysql/mysql-3406/data/mysql-bin
replicate-ignore-db=mysql,information_schema,performance_schema  #不同步的数据库

 以上面主库配置相比,就是除了server-id不一样,这里还需要配置replicate-ignore-db,注意不是日志

2.重启从库mysql服务,重启命令同主库命令

3.主从同步配置

#1,先登录mysql,然后执行后续代码
mysql -u root -p密码
#2,关闭从库
stop slave;
#3,设置同步,注意这里是主库ip,日志名称和位置是我们之前上图中看到的名称和位置
change master to master_host='192.168.15.3',master_user='asyncuser',master_password='123456',master_port=3306,,master_log_file='mysql-bin.000002',master_log_pos=1631;
#4,开启从库
start slave; 
# 5,检查服务器状态
show slave status \G;

以上注意这两个参数:master_log_file='mysql-bin.000002',master_log_pos=1631;.这两个值对应的是主库      show master status;   命令查询出来的值

出现以下表示主从成功

CentoS7 安装篇八:mysql主从搭建_第2张图片

可以在主动数据库,插入一条数据,从库数据库会相应生成一条,尽情狂欢把 

四、以上操作可能出现问题及解决方案

错误(1):atal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

 出现以上问题,排查两个地方

1.主库与从库配置文件    server-id = 4   这个值不能一样   

     1.1 .如果值不一样,可能配置完毕之后没有重启mysql,两台服务器都重启一下mysql服务

2. 登录mysql  ,使用  show variables like '%server_uuid%';   查看两台服务器这个值是否唯一,如果不唯一,则在mysql配置文件中手动指定

server-uuid=xxxxxxxxxxxxxxxxxxxxxxxxxx

错误(2):Error 'Can't create database 'test'; database exists' on query. Default database: 'test'. Query: 'CREATE DATABASE `test` CHARACTER SET 'utf8mb4''

CentoS7 安装篇八:mysql主从搭建_第3张图片

解决办法:删除从库中  test  数据库,

stop slave;
#4,开启从库
start slave; 
# 5,检查服务器状态
show slave status \G;

你可能感兴趣的:(Linux,mysql,服务器,数据库)