当前位置:Gxlcms > mysql > mysql5.5建立主从复制(setupmaster-slavereplication)_MySQL

mysql5.5建立主从复制(setupmaster-slavereplication)_MySQL

时间:2021-07-01 10:21:17 帮助过:14人阅读

bitsCN.com

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

人气教程排行