天天看点

mysql主从配置

这里直接使用的yum安装,其实与编译安装差不多。

master:3306

slave:3307

1. 配置主(master)

vim /usr/local/mysql/my.cnf  

#修改或添加:

server-id=1

log-bin=mysql-bin 

两个可选参数(2选1):

binlog-do-db=db1,db2 #需要同步的库

binlog-ignore-db=db1,db2 #忽略不同步的库

修改配置文件后,重启mysql

pid=`ps uax |grep mysql.sock |grep -v grep|awk '{print $2}'` ; kill $pid; cd /usr/local/mysql/bin/; ./mysqld_safe--defaults-file=../my.cnf --user=mysql &

设置root密码:

mysqladmin -u root -S /tmp/mysql.sock password '123456'

mysql -u root -S /tmp/mysql.sock -p'123456'

grant replication slave on *.* to'repl'@'127.0.0.1' identified by '123123';

flush tables with read lock; #上锁

show master status; #一定要记住前两列的内容,一会会用到

2. 设置从(slave)

vim /etc/my.cnf  #修改或增加

server-id = 2 #这个数值不能和主一样

可选参数:replicate-do-db=db1,db2 和replicate-ignore-db=db1,db2 #意义同主的那两个可选参数

service mysqld restart

拷贝主的db1库数据到从:mysqldump -uroot -S /tmp/mysql.sock -p123456 db1 > db1.sql; mysql-uroot -p -e "create database db1"; mysql -uroot -p  db1 < db1.sql

mysql -uroot -p  #登陆从的mysql

slave stop;

change master to master_host='127.0.0.1',master_port=3306, master_user='repl', master_password='123123',master_log_file='mysql-bin.000006', master_log_pos=474952;

slave start;

主上: mysql -uroot -S /tmp/mysql2.sock -p123456 -e "unlocktables"

从上查看从的状态: show slave status\G;

建议: MySQL主从机制比较脆弱,谨慎操作。如果重启master,务必要先把slave停掉,也就是说需要在slave上去执行slave stop 命令,然后再去重启master的mysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启slave start.

本文转自 sykmiao 51CTO博客,原文链接:http://blog.51cto.com/syklinux/1737317,如需转载请自行联系原作者

继续阅读