您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

centos7环境下Mysql5.6主从配置

bubuko 2022/1/25 20:10:22 mysql 字数 6442 阅读 1354 来源 http://www.bubuko.com/infolist-5-1.html

操作使用的环境 主从配置后,主写同步到从,从写无法同步到主(已测试) Mysql主从配置:主服务器ip:192.168.200.100从服务器ip:192.168.200.200 系统:centos7 3.10.0 [root@localhost lib]# uname -aLinux localh ...

操作使用的环境

主从配置后,主写同步到从,从写无法同步到主(已测试)

Mysql主从配置:
主服务器ip:192.168.200.100
从服务器ip:192.168.200.200

系统:centos7 3.10.0
[root@localhost lib]# uname -a
Linux localhost.localdomain 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

数据库:mysql5.6.45
[root@localhost lib]# mysql --version
mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper

一、数据库安装
1、关掉防火墙
2、关掉shelinux
3、rpm包安装。

查看防火墙状态:# systemctl list-unit-files|grep firewalld.service
如果显示firewalld.service enabled则需要关闭
# systemctl stop firewalld.service 停止防火墙
# systemctl disable firewalld.service #禁止firewall开机启动

1、安装 MySQL:
接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源包,下载地址为:https://dev.mysql.com/downloads/repo/yum/

技术分享图片

 

 

1-1Wget下载rpm包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

1-2解压rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm

1-3更新yum源
yum update

1-4yum安装
yum install mysql-server

1-5mysql数据库的属组授权(一般情况默认是mysql组)
chown mysql:mysql -R /var/lib/mysql

1-6新数据库需要初始化数据库
mysqld –initialize

1-7启动mysql数据库
systemctl start mysqld

1-8查看数据库状态
systemctl status mysqld
以上为数据库通过rpm包的安装过程,做主备的机器都按上述安装步骤操作

数据库授权,是否允许某用户管理
使用mysql命令进入mysql,mysql -uroot -p,然后输入密码。
授权远程访问操作如下三步:
1.use mysql; #取得mysql操作权

2.grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘password‘; #授权用户,指定可操作的库和表以及可使用的用户、IP、密码

3.flush privileges; #刷新权限表

4、systemctl restart mysqld #退出mysql重启mysql服务

三、配置master主数据库
1、修改配置文件
Linux环境下,mysql的配置文件位于 /etc/my.cnf
# vi /etc/my.cnf   编辑配置文件
配置文件中加入(需在[mysqld]头部下配置如下命令)
log-bin=mysql-bin #开启二进制日志
server-id=2 #标识唯一id(必须),一般使用ip最后位
binlog-ignore-db=information_schema #指定不同步的数据库,可设置多个
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=ufind_db #指定需要同步的数据库(和slave是相互匹配的),可以设置多个,配置完后续,如果没这个库,需要创建
解释:server-id:用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。
binlog-ignore-db:表示同步的时候ignore的数据库
binlog-do-db:指定需要同步的数据库

2、重启服务,进入mysql
# systemctl restart mysqld.service 重启mysql服务

3.进去mysql设置允许从库获得主库日志
注:这里使用root用户配置,不建议使用,正常使用新创建的用户进行授权
#给从库放权限
[root@localhost ~]# mysql -u root -pxxx
mysql>GRANT FILE ON *.* TO ‘用户名‘@‘IP地址‘ IDENTIFIED BY ‘密码‘;   #创建用户
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘zhq‘@‘192.168.2.2‘ IDENTIFIED BY ‘123456‘;  
#修改用户权限
mysql>select host,user,password from mysql.user;  #查看是否修改成功
mysql>FLUSH PRIVILEGES;   #刷新授权
注:如果数据库有数据需要进行数据迁移保证数据的一致性
创建数据库: 在从库中创建一个和主库相同的数据库,不然两个数据库不能同步(进行过数据迁移就跳过)

4.重启MySQL,登录MySQL,查看主库信息
mysql> show master status; 查看主数据库信息
如果执行这个步骤最后为Empty set(0.00 sec),那说明前面的my.cnf没配置对。如果配置成功,会显示下图。

技术分享图片

 

 

四、配置从数据库
修改配置文件,方法同上,加入内容为:
log-bin=mysql-bin
server-id=3
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysq
replicate-do-db=ufind_db
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

4.重启MySQL,登录MySQL
#关闭Slave
mysql> stop slave; #设置连接主库信息
mysql> change master to master_host=‘192.168.200.100‘,master_user=‘myslave‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000002‘, master_log_pos=292; #设置连接主库信息,log_file和log_pos参考上图片标红两个参数
mysql> start slave; #开启Slave

注:上面的master_log_file是在配置Master的时候的File字段, master_log_pos是在配置Master的Position 字段。一定要一一对应

5.查看信息


mysql> show slave status \G; #slave从机器上查看连接是否没问题。

 技术分享图片

 

技术分享图片

 

 

注意事项:
1、检查Slave_IO_Running和Slave_SQL_Running的状态是否为yes,如果显示no则有问题,需查看下面的报错信息进行处理。
2、Last_IO_Error:  #此处会显示错误信息,如果没问题,则不显示。

3、从库报这个错误:Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file‘
Got fatal error 1236 from master when reading data from binary log: ‘could not find next log‘

解决方法:说明从库配置的log_file和log_pos的值与主库的值不对应。需
CHANGE MASTER TO MASTER_LOG_FILE=‘testdbbinlog.000002‘,MASTER_LOG_POS=120; #设置连接主库信息
mysql>stop slave; #停止从数据服务
mysql>reset slave; #更新从数据服务
mysql>start slave; #重启从服务

 

用到的mysql命令:
1.查看数据库中的数据库
show databases;
2.使用某个数据库
use 数据库名字;
3.显示数据库中的表
show tables;

centos7环境下Mysql5.6主从配置

原文:https://www.cnblogs.com/xiangxu-zhao/p/12360662.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶