续mysql数据库主从同步过程详述(一)
3从库上执行操作
3.1设置server-id值并关闭binlog设置
数据库的server-id一般在LAN内是唯一的,这里的server-id要和主库及其他从库不同,并注释掉从库的binlog参数配置;
执行vi/etc/my.cnf编辑my.cnf配置文件,按如下两个参数内容修改;
[mysqld]
server-id = 2
#log-bin = mysql-bin
检查配置后的结果
grep-E"server-id|log-bin"/etc/my.cnf
#log-bin = mysql-binlog-bin后面也可以不带等号内容,mysql会使用默认日志。
server-id= 2
重启从数据库
/etc/init.d/mysqlrestart
3.2还原主库导出的数据到从库
cd/server/backup/ &&ls -l
然后解压刚才备份的
gzip-dmysql_bak.2012-05-22.sql
恢复命令
mysql-uroot-p"123123"
3.2登陆从库配置同步参数
mysql-uroot-p"123123"
CHANGEMASTERTO连接主数据库
MASTER_HOST="192.168.1.5",这里是主库的ip
MASTER_PORT=3306,这里是主库的端口,从库的端口可以和主库不同
MASTER_USER="rep",这里是主库上建立的用于复制的用户rep
MASTER_PASSWORD="123456",这里是rep的密码
MASTER_LOG_FILE="mysql-bin.000004",这里是showmasterstatus时查看到的二进制日志文件名称,注意不能多空格
MASTER_LOG_POS=1273;这里是showmasterstatus时查看到的二进制日志偏移量,注意不能多空格。
不登陆数据库,在命令行快速执行changemaster的语句(适合在脚本中批量建slave库用)
本文即用此法来操作
cat| mysql-uroot -p"oldboy"-S/data/3307/mysql.sock<
CHANGEMASTERTO
MASTER_HOST="192.168.1.5",
MASTER_PORT=3306,
MASTER_USER="rep",
MASTER_PASSWORD="123456",
MASTER_LOG_FILE="mysql-bin.000004",
MASTER_LOG_POS=1273;
EOF
3.2启动从库同步开关
启动从库同步开关,并查看同步状态
mysql-uroot-p"123123"-S/tmp/mysql.sock-e"startslave;"
mysql-uroot-p"123123" -e"showslavestatus\G;"
也可登陆数据库里面执行下面两个命令:
startslave
showslavestatus\G;
判断搭建是否成功就看如下IO和SQL两个线程是否显示为yes状态
Slave_to_Running: Yes#负责从库去主库读取binlog日志,并写入从库中继日志中
Slave_SQL_Running: Yes#负责读取并执行中继日志中的binlog,转换sql语句后应用到数据库汇总
也可以执行命令过滤查看如下
mysql-uroot-p"123123"-S/tmp/mysql.sock-e "showslavestatus\G;" | egrep "IO_Running|SQL_Running"
3.3测试复制结果
主库创建一数据库,看从库是否有.
mysql-uroot -p"123123"-S /tmp/mysql.sock-e "createdatabasediablo4;"
mysql-uroot -p"123123" -e"showdatabaseslike'diablo4';"
如下图主库创建库
从库如下图示:
请关注mysql数据库主从同步过程详述(三)