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

WBOY
发布: 2016-06-01 13:35:59
原创
1121 人浏览过

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
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板