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

master3306

slave3307

 

1. 配置主(master)

vim /usr/local/mysql/my.cnf  

#修改或添加:

server-id=1

log-bin=mysql-bin 

两个可选参数(21):

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 命令,然后再去重启mastermysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启 slave start.