mysql 主从配置,slave master 设置

mysql 专栏收录该内容
17 篇文章 0 订阅

mysql 主从配置 文章所用版本mysql5.6 , mysql 5.7 博主亲测通过!!!

master数据库ip :78.159.xxx.238 

slave数据库ip :78.159.xxx.209

同步的数据库:  testOrderDb

同步账号:slaveuser  密码 : 123456

具体账号信息根据需求自己修改即可完成mysql的主从配置!

 

mysql master机器配置:

master机器上面的配置文件在mysqld区间增加下面内容:

vim  /etc/my.cnf


[mysqld]
#mysqld字段增加如下信息
log-bin=mysql-bin   #开启log bin
binlog_format=mixed #日志格式
server-id   = 1     #server id,跟slave配置不同server-id,例这里写1,slave可以写1除外2.3.4...
expire_logs_days = 10 #日志保存时间
binlog-ignore-db=information_schema #这是mysql默认的数据库,忽略掉
binlog-ignore-db=mysql              #这是mysql默认的数据库,忽略掉
binlog-ignore-db=performance_schema #这是mysql默认的数据库,忽略掉
binlog-do-db=testOrderDb    #需要同步的数据库

登录master的数据库,创建同步的账号,指定给slave的ip使用

#创建用户slaveuser 密码123456
CREATE USER 'slaveuser'@'78.159.xxx.209' IDENTIFIED BY '123456';

#给读取文件权限
grant FILE on *.* to 'slaveuser'@'78.159.xxx.209' identified by '123456'; 
grant replication slave on *.* to 'slaveuser'@'78.159.xxx.209' identified by '123456';

flush privileges;

配置完成,重启mysql : 

/etc/init.d/mysql restart   

/usr/local/mysql/support-files/mysql.server restart

重新登录master的数据库:

show master status; 

 

mysql slave机器配置:

创建要同步的数据库:

create database testOrderDb default charset utf8;

把master数据库的数据dump一份导入到slave(非常重要)

mysqldump  -h78.159.xxx.238  -uroot  -p  testOrderDb>source.sql #dump master数据库到slave

mysql  -h7127.0.0.1  -uroot  -p  testOrderDb<source.sql #导入数据到slave的testOrderDb数据库中

vim  /etc/my.cnf 在mysqld段增加如下内容:

log-bin=mysql-bin
binlog_format=mixed
server-id   = 2  #注意:master机器设置了1,这里设置跟master不同的server id
expire_logs_days = 10
binlog-ignore-db=information_schema #忽略默认的information_schema数据库
binlog-ignore-db=mysql              #忽略默认的mysql数据库
binlog-ignore-db=performance_schema #忽略默认的performance_schema数据库
replicate-do-db=testOrderDb         #设置需要同步的数据库跟master一样
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

更新配置文件后记得重启mysql 

/etc/init.d/mysql restart   

/usr/local/mysql/support-files/mysql.server restart

重启mysql完成,登录slave的数据库执行如下命令:

CHANGE MASTER TO MASTER_HOST='78.159.xxx.238',MASTER_USER='slaveuser',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000010';

MASTER_HOST:是master机器的ip

MASTER_USER:slaveuser 是刚才在master创建用于同步的账号

MASTER_PASSWORD:123456 是刚才在master创建的密码

MASTER_LOG_FILE:是在master机器执行 show master status 出来的结果

 

开启slave执行:START SLAVE;

查看slave状态执行:show slave status\G

--------------------------------------------------至此,主从配置已经完成-------------------------------------------

 

mysql master slave模式的其他设置:

mysql主从复制,slave从库只读配置对于需要保证master-slave主从同步的salve库,如果要设置为只读状态,需要执行的命令为:

set global read_only=1;  对于非root用户,切换到root用户后还是可以进行增删改查的哦。


read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户(如超级管理员root用户)的数据修改操作。

为了确保所有用户,包括具有super权限的用户也不能进行读写操作,就需要执行给所有的表加读锁的命令

flush tables with read lock; 

这样使用具有super权限的用户登录数据库,想要发生数据变化的操作时,也会提示表被锁定不能修改的报错。

将slave数据库read-only=1设置只读后,在master执行GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY'123456' WITH GRANT OPTION;创建一个普通用户,然后用普通用户登录从库,执行操作会报错。
 

 

  

 

  • 4
    点赞
  • 2
    评论
  • 16
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

或非与

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值