时间:2021-07-01 10:21:17 帮助过:14人阅读
mysql5.5建立主从复制(set up master-slave replication)
1.注意事项:
(1)主从服务器版本要一致
(2)要修改root密码,切不可用初始密码 ( 此与主从复制无关,为数据库安全考虑耳 ); www.bitsCN.com
2.配置主服务器master:
[sql]
[mysqld]
log-bin=mysql-bin //必须启用二进制日志
server-id=1 //必须是服务器唯一id,默认是0,
重启主服务器
3.配置从服务器slave:
[plain]
[mysqld]
#log-bin=mysql-bin // 从服务器的二进制日志非必须启用,然而如果该从服务器要作为其他服务器的主服务器时则需要启用;若启用二进制日志,可以用作数据备份和功能恢复
server-id=2 //必须服务器唯一ID, 默认是0,不要与服务器一样
重启从服务器
4.在主服务器给从服务器分配一个具有replication slave权限的帐户
[sql]
mysql> CREATE USER 'repl'@'192.168.1.103' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.103';
5.获得复制主服务器二进制日志的坐标( Obtaining the Replication Master Binary Log Coordinates )
(1).在主服务器命令行启用一个session连接mysql,刷新所有的表和并阻止写入语句:
[sql]
mysql> FLUSH TABLES WITH READ LOCK; ( 要解锁退出该会话即可 )
(2).在主服务器通过命令行新开一个session连接mysql,使用语句SHOW MASTE STATUS判断出当前二进制日志的文件名和位置:
[sql]
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 107 | | |
+------------------+----------+--------------+------------------+
记下二进制文件名:mysql-bin.000003和位置107
6.使用mysqldump创建一个数据快照
(1).确定主服务器读写被锁,见上一步5.1
(2).使用mysqldump导出所有需要复制的数据库或者选择其中一个,例如:
[sql]
shell> mysqldump --all-databases --lock-all-tables >dbdump.db
(3).解锁之前锁定的表:
[sql]
mysql> UNLOCK TABLES;
(另:关闭连接也可以解锁)
7.交直一步创建的快照导入从服务器:
(1).把dbdump.db(即上一步从主服务器导出的文件)拷贝到从服务器
(2).连接从服务器并执行stop slave;
[sql]
mysql > stop slave;
(3).导入文件
[sql]
mysql > create databases 'dataname';
mysql > use 'dataname';
mysql > source dbdump.db;
8.配置复制的主服务器的坐标
[sql]
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.103',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='slavepass',
-> MASTER_LOG_FILE='mysql-bin.000003',
注:执行该语句之前必须确保没有slave线程运行,否则报错
9.启动slave线程:
[sql]
mysql > start slave;
10.在主服务器中插入一条数据,查看从服务器是否有了.
bitsCN.com