您的位置:首页 > 运维架构 > Linux

linux下mysql的主从配置

2018-03-22 17:27 429 查看




数据库升级完了又要整一个主从库出来,我的天,数据库都跑了2年多了,现在整个主从库。废话不多说了,直接记录一下。

1.准备工作

1.1备份主库数据

mysqldump -uusername -ppassword --opt --single-transaction  --all-databases --events > /usr/local/backup`date +%F`.sql

1.2将备份的.sql文件上传到从库机器

1.3.在从库mysql终端下执行 

mysql >source /usr/local/backup2018-03-22.sql

2.开始主从配置

2.1创建一个专门用于主从复制的账号

在Master的数据库中建立一个备份帐户:每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予REPLICATION SLAVE权限。命令如下
mysql > GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'BACKUP'@'xx.xx.xx.xx' IDENTIFIED BY 'password';  //建立一个帐户backup,并且只能允许从xx.xx.xx.xx这个地址上来登陆,密码是password

2.2.配置master

vi /etc/my.cnf   #编辑配置文件,在[mysqld]部分添加下面内容
server-id=1   #设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=dbname#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql   #不同步mysql系统数据库
:wq!   #保存退出
重启master,运行SHOW MASTER STATUS
注意:这里记住File的值:mysql-bin.008797和Position的值:62,后面会用到。

2.3.配置slave

vi /etc/my.cnf   #编辑配置文件,在[mysqld]部分添加下面内容
server-id=2   #设置服务器id,修改其值为2,表示为从数据库
log-bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
replicate-do-db=dbname#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-ignore-db=mysql   #不同步mysql系统数据库
replicate-ignore-table=dbname.tablename 不同步dbname库中的tablename 表
read_only  #设置数据库只读
:wq!    #保存退出

2.4.从库上执行同步语句

change master to master_host='xx.xx.xx.xx',master_user='BACKUP',master_password='password',master_log_file='mysql-bin.008797' ,master_log_pos=62; 

2.5.开启slave同步进程

mysql>start slave;

2.6查看slave同步信息

mysql> SHOW SLAVE STATUS\G
注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!
如果后期master重启了,slave需要重新执行同步语句,然后重启slave

3

如果执行同步的过程中出现错误了,可以跳过这个这个错误执行后续同步
方法:关闭slave后从库上执行set  global sql_slave_skip_counter=1;然后重新执行2.4、2.5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux mysql主从配置