首页 > 代码库 > Linux 下实现Mysql主从

Linux 下实现Mysql主从

关于mysql的安装前面的文章已经写到,这里不就再说了


这里首先要创建一个你要同步的数据库作为测试用

首先再master上创建一个备份账户 这里创建的账户为repl %表示任意地址的repl用户均可登入master主库

GRANT REPLICATION SLAVE ON *.* TO ‘repl ‘@‘%‘ IDENTIFIED BY ‘Abcd@1234‘;

GRANT ALL PRIVILEGES ON *.* TO ‘repl‘@‘%‘ IDENTIFIED BY ‘Abcd@1234‘ WITH GRANT OPTION;

从库机器上连接主库命令  mysql -h IP地址 -uroot -p ;  测试从库连接主库,如无法连接,进行授权解决

(这里我使用第一个账户授权时到时配置完称呼无法同步数据,原因是权限不够,所以直接使用第二个授权命令)

修改my.cnf配置文件

vi /etc/my.cnf

加入如下参数:

server-id=1 

log-bin=/var/lib/mysql/mysql-bin 

binlog_do_db= test    #主从同步数据库名称


保存后,重启数据库 service mysqld restart;

查看server-id是否已生效  

show variables like ‘server_id‘;

技术分享

如果server_id‘不存在执行,创建  SET GLOBAL server_id=1;


查看主机状态 show master status; 

技术分享

记录下 File 和Position 后面配置从库时会用到



从库配置

修改my.cnf配置文件

vi /etc/my.cnf

加入如下参数:

server-id = 2

log-bin=/var/lib/mysql/mysql-bin 

replicate-do-db  =   test   #主从同步数据名称

保存后,重启数据库 service mysqld restart;

查看server-id是否已生效  

show variables like ‘server_id‘;

技术分享

停止slave 服务

stop slave;

设置从库连接时登录主数据库的账号和密码等信息,然后启动slave  (ps:这最好重新查看一下master状态,以防信息发生改变 show master status; 

CHANGE MASTER TO MASTER_HOST = ‘192.168.1.185‘ ,MASTER_USER = ‘repl‘ 

    ,MASTER_PASSWORD =‘Abcd@1234‘ 

    ,MASTER_LOG_FILE =‘mysql-bin.000001‘ 

    ,MASTER_LOG_POS =437;


开启slave

start slave;

show slave status;

查看这两项是否为YES,yes为正常。

Slave_IO_Running: Yes  或 Connecting to master 

Slave_SQL_Running: Yes

正常说明配置成功,接下来进行测试就可以了


show processlist  可以在master上查看 slave线程状态


以下链接包含已存在的旧数据库如何同步

http://jingyan.baidu.com/article/d71306352c4b5813fcf47553.html

本文出自 “风之然” 博客,请务必保留此出处http://fengzhiran.blog.51cto.com/9297534/1937028

Linux 下实现Mysql主从