MYSQL主备复制结构的搭建和切换
发布日期:2016-4-25 16:4:17
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 第五步: 验证 原来的主库已经变成从库,从库变成主库。 上一条: 利用一个数据库中间件扩展MySQL集群 下一条: MySQL的通用优化手册
|