首页 > 代码库 > 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主从