centos7 mysql5.6主从_centos7环境下Mysql5.6主从配置

操作使用的环境

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

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/

daf524bea4428e96cc2c66f14061849b.png

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没配置对。如果配置成功,会显示下图。

e04a18bb82f657d53c1db3274679ebfc.png

四、配置从数据库

修改配置文件,方法同上,加入内容为:

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从机器上查看连接是否没问题。

591791735feccc45724eda90620656fc.png

268b85a676ea9c70b582d30bae641131.png

注意事项:

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值