mysql主从同步关机步骤_mysql主从同步步骤

本文详细介绍了MySQL主从同步的配置步骤,包括主服务器和从服务器的配置、权限授权、数据库备份与导入、同步启动与状态检查。同时,针对常见错误进行了分析和解决建议,确保主从数据一致性。
摘要由CSDN通过智能技术生成

注意:mysql5.1以上的版本不支持直接将master_host等信息配置在my.conf配置文件中。

1、分别配置slave以及master端:

例如:

Master的my.conf配置:

server-id       = 30            master端ID号

log_bin         = /var/log/mysql/mysql-bin.log       日志路径及文件名

binlog-do-db = cacti            同步cacti,此处关闭的话,就是除不允许的,其它的库均同步。

binlog-ignore-db = mysql        不同步mysql库

其他配置项:

replicate_ignore_table 不复制指定的表(从服务器配置文件里设置)

replicate_wild_ignore_table 使用wild匹配来不复制的指定表(从服务器配置文件里设置),比如参数设为abc.%,表示不复制abc的所有表

Slave的my.conf配置:

server-id       = 31             slave的ID号,此处一定要大于master端。

log_bin         = /var/log/mysql/mysql-bin.log        日志路径及文件名

其他配置项:

log_slave_updates = 1   让从服务器把自身复制的事件和记录都写到自己的二进制日志里

relay_log = /var/log/mysql/mysql-relay-bin.log           中继日志

read_only            让从服务器只读,可以防止有人误从服务器插入数据,导致主从数据不一致。

slave-skip-errors    在复制过程中忽略一些错误,让复制继续进行,在这里我忽略了1062和1053号错误,如果要忽略所有错误就设成all

skip_slave_start     防止从服务器在崩溃后自动开启,以给你足够的时间修复。

设置完成后,重启mysql服务

2、在主服务器上创建从服务器可连接的授权帐号:

/usr/local/mysql/bin/mysql -uroot -p

mysql>grant replication slave on *.* to rsync@'192.168.2.211' identified by '123456';

mysql>flush privileges;

mysql>flush tables with read lock;   为了备份请先锁定数据库

mysql>show master status;

此处主要记录下file和position的值,slave端要使用到。如下

File             | Position  |

+------------------+----------

| mysql-bin.000047 | 391592414

3、备份主服务器数据库导入到从服务器:

使用mysqldump进行备份导出:

例如:mkdir /mysqlbackup/`date +%Y-%m-%d`  自动创建数据库备份目录(按日期命名)

mysqldump -uroot -p123456 -h192.168.1.1 applist -B -R > /mysqlbackup/`date +%Y-%m-%d`/applist.sql

其中-B是数据库不存在时自动创建。

-R表示到处存储过程。

使用mysql -uroot -p123456 < ./applist.sql  进行还原。

4、开始同步:

/usr/local/mysql/bin/mysql -uroot -p

mysql>stop slave;

mysql>change master to

>master_host='192.168.2.67',

>master_user='rsync',                            master端创建的用于主从同步的账户和密码

>master_password='123456',

>master_port='3306',                             master端设置的client端使用的端口号。

>master_log_file='mysql-bin.000047',             master端记录的file值

>master_log_pos=391592414;                       master端记录的position值

mysql>start slave;

mysql>show slave status \G

查看Slave_IO_Running: Yes 和Slave_SQL_Running: Yes  2个都为yes则证明主从同步正常,如果有任一个显示NO,则证明同步有问题。

可以查看数据库日志文件,里面基本上会显示出错误之处,根据错误一步一步排查,基本上都可以解决的。

5、SHOW SLAVE STATUS 返回以下信息:

Slave_IO_State

SHOW PROCESSLIST 输出的 State 字段的拷贝。从这里可以看出是否线程正在连接主服务器,是否正在等待来自于主服务器的事件,是否正在重新连接主服务器等信息。所有可能出现的状态管理员手册中的复制实现细节列出。这些信息是非常重要的,比如线程虽然运行但是没有成功的连接主服务器,只有这个字段能告诉用户的连接问题。由于 SQL 线程简单,所以它的状态没有拷贝。如果它运行,就没有问题,如果没有运行,可以在 Last_Error 域中找到错误(下面描述)。

Master_Host

目前主服务器主机。

Master_User

连接主服务器的当前用户。

Master_Port

当前的主服务器端口。

Connect_Retry

选项 –master-connect-retry 的当前值。

Master_Log_File

I/O 线程当前读取的主服务器二进制日志文件的名字。

Read_Master_Log_Pos

I/O 线程从当前的主服务器二进制日志中读取的位置起点。

Relay_Log_File

SQL 线程当前读取并执行的中继日志文件的名字。

Relay_Log_Pos

SQL 线程当前从中继日志中读取执行的位置起点。

Relay_Master_Log_File

主服务器中二进制日志文件的名字,此文件中包含了最近一次 SQL 线程执行的事件。

Slave_IO_Running

I/O 线程是否启动。

Slave_SQL_Running

SQL 线程是否启动。

Replicate_Do_DB, Replicate_Ignore_DB

如果有的话,就是以选项 –replicate-do-db 和 –replicate-ignore-db 指明的数据库列表。

Replicate_Do_Table, Replicate_Ignore_Table, Replicate_Wild_Do_Table, Replicate_Wild_Ignore_Table

如果有的话,是以选项 –replicate-do-table, –replicate-ignore-table, –replicate-wild-do-table, and –replicate-wild-ignore_table 指明的表的列表。

Last_Errno, Last_Error

最近执行的查询返回的错误号和错误信息。错误号是 0 且空的信息表示没有错误。如果 Last_Error 值不空,在从服务器的错误日志中也会出现错误信息。

6、常见错误:

ERROR:Could not find target log during relay log initialization

Slave I/O: error connecting to master 'rep1@192.168.0.130:3306' - retry-time: 60  retries: 86400, Error_code: 2013

报如上错误。

,需要确认两点,Change to mysql用户名的正确性,log_file的正确。

,在从库机器,mysql命令可以通过rep1用户链接到主库。(记得bind-address 注释掉,否则没法在第三方机器访问。)

确认好用户名之后,重新reset slave;再参照第四步开始同步。

参考链接:

http://www.linuxidc.com/Linux/2012-02/54729.htm

http://hi.baidu.com/farmerluo/item/c0483620cf76d18e6e2cc3a5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值