1.选择两个服务器,分别作为主备数据库
2. 登陆至服务器,安装相同版本MySQL
代码如下所示:
[sql] view plain copyyum install mysql ;
yum install mysql-server;
3. 启动mysql服务器
代码如下所示:
service mysqld start
4.分别root登陆mysql 执行下面所示的命令
增加复制用户并授权(主备都在192.168.119.*网段,为了方便主备切换,两边都建立),代码如下所示:
[sql] view plain copyGRANT REPLICATION SLAVE,REPLICATION CLIENT on *.* to repl@'192.168.119.%' identified by '1234';
5. 配置/etc/my.cnf
代码如下所示:
第一服务器(主)
[sql] view plain copylog_bin=mysql-bin
server_id=1
第二个服务器(备)
[sql] view plain copylog_bin=mysql-bin
server_id=2
read_only=1
6. 重启两个mysql服务器
7.登陆主(root)执行
代码如下所示:
[sql] view plain copyshow master status\G;
将显示
File: mysql-bin.000001
Position: 106
8.登陆备(root) 执行
测试一下 mysql -urepl -h192.168.119.128 -p1234 是否能连接到主库,不能需要检查防火墙或/etc/my.cnf是否有访问限制,请修改配置
mysql -uroot登陆本地库执行,代码如下所示:
[sql] view plain copyCHANGE MASTER TO
MASTER_HOST='192.168.119.128',
MASTER_USER='repl',
MASTER_PASSWORD='1234',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=106;
[sql] view plain copystart slave;
show slave status\G;
9.验证
主库上创建表,备库上查看,可以看到以下:
备库上repl创建表,显示The MySQL server is running with the --read-only option so it cannot execute this statement
因原因是配置了备库为read_only
10.后续关注
以后重启主备库,不用再配置change master。每重启一次主库会发现logfile 变成一个新的文件mysql-bin.000004
11.主从切换
第一步: 修改配置文件/etc/my.cnf,代码如下所示:
[sql] view plain copyread-only=1(主库)
#read-only=1(备库)
第二步: 从库上执行,代码如下所示:
[sql] view plain copySTOP SLAVE IO_THREAD;
SHOW PROCESSLIST;
system user 线程确保状态为:has read all relay log 或者消失
再执行以下代码:
[sql] view plain copySTOP SLAVE;
RESET MASTER;
RESET SLAVE;
show master status \G;
结果如下所示:
File: mysql-bin.000001
Position: 106
第三步:主库上执行,代码如下所示:
[sql] view plain copyRESET MASTER;
RESET SLAVE;
[sql] view plain copyCHANGE MASTER TO
MASTER_HOST='192.168.119.129',
MASTER_USER='repl',
MASTER_PASSWORD='1234',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=106;
[sql] view plain copystart slave
第四步: 重启主备库,要注意先重启新的主库,再启动新的备库,代码如下所示:
[sql] view plain copyservice mysqld restart
第五步: 验证
原来的主库已经变成从库,从库变成主库。