Home  >  Article  >  Database  >  mysql5.5建立主从复制(set up master-slave replication)_MySQL

mysql5.5建立主从复制(set up master-slave replication)_MySQL

WBOY
WBOYOriginal
2016-06-01 13:35:591121browse

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
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn