这里直接使用的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.