配置 master-slave replication mysql 服务器笔记

对于服务器来说,数据丢失是最要命的事情了,系统崩溃,硬盘物理损坏都可能造成无法挽回的损失。谷奥数据库的备份也一直是我心头之病,最近有空架设了一台 slave 服务器并且在 slave 服务器上用 crontab 保留 snapshot,数据安全性应该有了比较大的改善了。简单配置过程如下,环境为 mysql 5.0 / 5.1 + FreeBSD 8.1

master 服务器,首先修改 my.cnf:

sudo vi /var/db/mysql/my.cnf

修改或加入如下行,binlog-ignore-db 可以根据自己实际情况修改

log-bin=mysql-bin
server-id       = 1
binlog-ignore-db=mysql,information_schema

重新启动 mysql-server

sudo /usr/local/etc/rc.d/mysql-server restart

进入 mysql console,加 slave 用户:

mysql> GRANT REPLICATION SLAVE ON *.* TO ‘slave_user’@SLAVE_IP_ADDRESS IDENTIFIED BY ‘PASSWORD’;
mysql> FLUSH PRIVILEGES;

查看 master 的数据,记得先锁定表格:

mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

记下其中的 File 文件名和 Position 执行位置,下一步导出 master 的数据,推荐使用 tar 直接打包然后解压到 slave 的数据库目录内。tar 或者 mysqldump 完毕后就可以解锁表格了。

mysql> UNLOCK TABLES:

接下来进行 slave 设置,修改 my.cnf 设置

sudo vi /var/db/mysql/my.cnf

找到 slave 段,增加/修改如下行(不要忘了去掉每行开头的 #)

server-id=2
master-host=MASTER.IP.ADDRESS
master-user=slave_user
master-password=PASSWORD
master-connect-retry=60
replicate-ignore-db=mysql,information_schema
skip-start-slave

重新启动 mysql-server

sudo /usr/local/etc/rc.d/mysql-server restart

登录 mysql shell 加入 master 信息:

mysql> CHANGE MASTER TO MASTER_HOST=’MASTER_IP_ADDRESS’, MASTER_USER=’slave_user’, MASTER_PASSWORD=’PASSWORD’, MASTER_LOG_FILE=’File 文件名’, MASTER_LOG_POS=Position 执行位置;
mysql> START SLAVE;

设置完成,检查一下状态:

mysql> show slave status;

最后不要忘了修改一下 my.cnf ,注释掉 skip-start-slave 这行,然后重启 mysql 服务器。

参考:

This entry was posted in 电脑相关 and tagged , , . Bookmark the permalink.

2 Responses to 配置 master-slave replication mysql 服务器笔记

  1. Pingback: mysqlbinlog Error in Log_event 原因及其解决 | gkp's post

  2. Pingback: mysqlbinlog Error in Log_event 原因及其解决

Leave a Reply

Your email address will not be published.