mysql 一直比较菜,今天尝试配置一个主从复制的集群。
环境:CentOS 6.3 x64
主:192.168.1.41 mysql-master
从:192.168.1.42 mysql-slave
1、在主从服务器上都安装mysql-server
- # yum install mysql-server
默认的配置文件太过简陋,我们使用/usr/share/mysql/my-large.cnf
- # cat /usr/share/mysql/my-large.cnf > /etc/my.cnf
2、修改主服务器配置文件,确保下面这些值生效:
- server-id = 1
- log-bin=mysql-bin
- sync_binlog = 1
- relay-log=mysql-master-relay-bin
- binlog-do-db=Syslog
- binlog_ignore_db=mysql
3、修改从服务器配置文件,确保下面这些值生效:
- server-id = 2
- log-bin=mysql-bin
- sync_binlog = 1
- relay-log=mysql-slave-relay-bin
- binlog-do-db=Syslog
- binlog_ignore_db=mysql
- read-only = 1
4、初始化mysql,设置密码等任务
- # service mysqld restart
- # mysql_secure_installation
5、在主服务器上创建一个用于复制的用户
- [root@mysql-master ~]# mysql -u root -p
- mysql> GRANT REPLICATION SLAVE ON *.* TO 'joe'@'%' IDENTIFIED BY 'secret';
- mysql> FLUSH PRIVILEGES;
6、导出主数据库,并复制到从服务器上
- [root@mysql-master ~]# mysqldump -u root --all-databases >master.sql
- [root@mysql-master ~]# scp master.sql root@192.168.1.42:/root/
7、导入数据库并配置同步,在从服务器上执行
- [root@mysql-slave ~]#mysql -u root -p
- mysql>STOP SLAVE;
- mysql>quit
- [root@mysql-slave ~]#mysql -u root -p < master.sql
- [root@mysql-slave ~]#mysql -u root -p
- mysql>START SLAVE;
- mysql> CHANGE MASTER TO
- MASTER_HOST='192.168.1.41',
- MASTER_USER='joe',
- MASTER_PASSWORD='secret',
- MASTER_PORT=3306,
- MASTER_CONNECT_RETRY = 10
- mysql>START SLAVE;
8、在从服务器上查看slave 状态
- mysql> SHOW SLAVE STATUS;
- mysql> SHOW PROCESSLIST;
输出太大,省略掉不贴出来,重要的是有句“Waiting for master to send event”
9、在主服务器上查看master状态
- mysql> show master status;
- mysql> SHOW PROCESSLIST;
同上,有句“Has sent all binlog to slave; waiting for binlog to be updated”
10、其他验证
尝试在主服务器上新建个数据库,插入点数据,然后到从服务器上看看是否同步。
- # yum install rsyslog-mysql
- # cd /usr/share/doc/rsyslog-mysql-5.8.10/
- # mysql -u root -p <createDB.sql
这样会在主服务器中生成一个名为Syslog 的数据库
注:最后一步尚未亲自验证。
本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/960383,如需转载请自行联系原作者