mysql 5.6 主从同步配置_MySQL 5.6 主从同步配置

首先,对数据库进行备份。数据库备份命令如下:

[root@RicenOS ~]# /usr/bin/mysqldump -uroot -plucky2012 --lock-all-tables --routines --triggers blog | gzip > ./blog_20160123.sql.gz

另外,还需要准备以下五张数据表:

innodb_index_stats、innodb_table_stats、slave_master_info、slave_relay_log_info、slave_worker_info

这里可以写一个脚本程序,从全新的 MySQL 数据库中导出:

#!/bin/sh

set -e

TABLELIST="innodb_index_stats"

TABLELIST="${TABLELIST} innodb_table_stats"

TABLELIST="${TABLELIST} slave_master_info"

TABLELIST="${TABLELIST} slave_relay_log_info"

TABLELIST="${TABLELIST} slave_worker_info"

/usr/bin/mysqldump -uroot -plucky2012 mysql ${TABLELIST} > mysql_innodb_tables.sql

执行上述脚本,可以导出 mysql_innodb_tables.sql 文件。

一、主服务器的配置

假设主服务器为 10.18.16.188。

1、停止 MySQL 数据库

2、修改配置文件:

[root@RicenOS ~]# vi /etc/my.cnf

添加如下代码:

server-id=1

log-bin=mysql-bin

log-bin=mysql-bin.log

binlog-do-db=blog

binlog-ignore-db=mysql

binlog-ignore-db=test

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

其中,第一行是必须的,默认是 1;第二行是必须的,启用二进制日志;第三行是必须的,数据库日志文件;第四行是要记录的数据库,多个的时候可以换行多次设置;第五到第八行不对 MySQL 自带的库进行日志记录操作。

3、进入到 /var/lib/mysql 目录下,删除如下文件:

mysql-bin.index、ibdata1、ib_logfile0、ib_logfile1、localhost.localdomain.err

4、进入到 /var/lib/mysql/mysql 目录下,使用如下命令删除五个数据表文件:

[root@RicenOS mysql]# rm -rf innodb_index_stats.*

[root@RicenOS mysql]# rm -rf innodb_table_stats.*

[root@RicenOS mysql]# rm -rf slave_master_info.*

[root@RicenOS mysql]# rm -rf slave_relay_log_info.*

[root@RicenOS mysql]# rm -rf slave_worker_info.*

5、启动 MySQL 数据库

6、导入之前准备的 mysql_innodb_tables.sql 文件:

mysql> use mysql

mysql> source /root/mysql_innodb_tables.sql

7、创建用于主从复制的帐号:

mysql> grant replication slave on *.* to 'root'@'10.18.16.188' identified by 'lucky2012';

8、对主数据库进行锁表:

mysql> flush tables with read lock;

9、开启另外一个会话窗口,登录到 MySQL,查看两个值:二进制日志文件及其位置。

mysql> show master status;

2d16452f1e5fda0e3ea2e3144bf0d76f.png

10、对主数据库表进行解锁:

mysql> unlock tables;

二、从服务器的配置

1、停止 MySQL 数据库

2、修改配置文件:

[root@RicenOS ~]# vi /etc/my.cnf

添加如下代码:

server-id=2

log-bin=mysql-bin.log

replicate-do-db=blog

replicate-ignore-db=mysql

replicate-ignore-db=test

replicate-ignore-db=information_schema

replicate-ignore-db=performance_schema

log-slave-updates

其中,第一行是必须的,数字大于 1 即可;第二行是必须的,数据库日志文件;第三行是要复制的数据库,多个的时候可以换行多次设置;第四到第七行不对 MySQL 自带的库进行复制操作;第八行将从服务器的更新写入二进制日志。

3、进入到 /var/lib/mysql 目录下,删除如下文件:

mysql-bin.index、ibdata1、ib_logfile0、ib_logfile1、localhost.localdomain.err

4、进入到 /var/lib/mysql/mysql 目录下,使用如下命令删除五个数据表文件:

[root@RicenOS mysql]# rm -rf innodb_index_stats.*

[root@RicenOS mysql]# rm -rf innodb_table_stats.*

[root@RicenOS mysql]# rm -rf slave_master_info.*

[root@RicenOS mysql]# rm -rf slave_relay_log_info.*

[root@RicenOS mysql]# rm -rf slave_worker_info.*

5、启动 MySQL 数据库

6、导入之前准备的 mysql_innodb_tables.sql 文件:

mysql> use mysql

mysql> source /root/mysql_innodb_tables.sql

7、从数据库设置复制的主数据库信息:

mysql> change master to master_host='10.18.16.188',master_user='root',master_password='lucky2012',master_log_file='mysql-bin.000001',master_log_pos=120;

8、启动从数据库的复制线程:

mysql> start slave;

9、查询从数据库的slave状态:

mysql> show slave status G

如果以下两个参数都是Yes,说明主从配置成功:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

三、还原数据库

[root@RicenOS ~]# gunzip blog_20160123.sql.gz

mysql> create database blog default character set utf8;

mysql> use blog

mysql> source /root/blog_20160123.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置MySQL 5.6主从同步,你需要按照以下步骤进行操作: 1. 在主服务器上修改配置文件。打开主服务器的my.cnf(或my.ini)文件,并添加以下配置: ``` [mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW ``` 2. 重启主服务器。在应用了配置更改后,重启主服务器以使更改生效。 3. 创建用于复制的用户。在主服务器上创建一个用于复制目的的用户,并授予适当的权限。例如,执行以下命令创建名为replica的用户: ``` CREATE USER 'replica'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'; FLUSH PRIVILEGES; ``` 确保将 'password' 替换为实际的密码,并根据需要设置更具体的权限。 4. 获取主服务器的二进制日志位置。登录到主服务器的MySQL命令行客户端,并执行以下命令: ``` SHOW MASTER STATUS; ``` 记录下返回的结果中的File和Position值,后续步骤将需要使用。 5. 配置从服务器。在从服务器上的my.cnf(或my.ini)文件中添加以下配置: ``` [mysqld] server-id=2 ``` 确保将server-id设置为不同于主服务器的唯一值。 6. 重启从服务器。在应用了配置更改后,重启从服务器以使更改生效。 7. 启动从服务器的复制进程。登录到从服务器的MySQL命令行客户端,并执行以下命令: ``` CHANGE MASTER TO MASTER_HOST='主服务器IP地址', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='主服务器返回的File值', MASTER_LOG_POS=主服务器返回的Position值; ``` 确保将 '主服务器IP地址'、'password'、'主服务器返回的File值'和'主服务器返回的Position值' 替换为实际的值。 8. 启动从服务器的复制进程。执行以下命令启动从服务器的复制进程: ``` START SLAVE; ``` 9. 检查复制状态。执行以下命令检查从服务器的复制状态: ``` SHOW SLAVE STATUS\G ``` 在结果中,确保Slave_IO_Running和Slave_SQL_Running两个字段的值均为"YES",示复制正在正常运行。 完成上述步骤后,你应该成功配置MySQL 5.6主从同步。请注意,这只是一个基本的配置示例,你可能需要根据你的实际环境进行适当的调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值