一 安装
1.主服务器和从服务器安装mysql
2.主从mysql版本需一致
二.配置
1.主服务器配置
1)修改/etc/my.cnf文件
(若不存在,执行以下命令:cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 具体路径按实际情况)
server_id=xx #修改为IP最后一段,便于区分,主从不能相同
log-bin=mysql-bin #打开日志
以下可以不配
binlog-do-db = db1 # 要给从机同步的库
binlog-ignore-db = mysql # 不给从机同步的库
expire_logs_days = 2 # 自动清理 2 天前的log文件,
2)创建同步帐号
GRANT REPLICATION SLAVE,FILE ON *.* TO '同步用的帐号'@'从服务器ip' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
2.从服务器配置
修改/etc/my.cnf文件
server_id = xxx #修改为IP最后一段,便于区分,主从不能相同
replicate-wild-ignore-table=mysql.% #同步所有跨数据库的更新
三.同步数据
1.主服务器导出数据
先查看主服务器有那些database,将除mysql和information_schema以外的需要同步的数据库导出
mysqldump -uroot -p --lock-tables --events --triggers --routines --flush-logs --master-data=2 --databases db1 db2 db3 > db.sql
2.从服务器导入数据
1)进入到mysql控制台
2)导入数据
source db.sql
3)查找日志及位置(该命令不是在mysql控制台)
grep -i "change master" db.sql
会出现类似以下内容:CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=106;
4)设置master参数
change master to master_host='主服务器IP',
master_user='同步用的帐号',
master_password='密码',
master_log_file='mysql-bin.000009', #日志文件 上一步中的
master_log_pos=106; #位置
四.启动主从同步
1.相关命令:
start slave; 启动从同步
stop slave; 关闭从同步
reset slave; 重置同步参数,重置前需先stop,重置后可以运行上一步中的change master to.....
show slave status; 查看同步参数
2.检查同步是否启动成功
start slave;以后查看show slave status\G 若出现以下且没有Error则成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
3.查看同步状态
1)主服务器:
show master status;
查看主服务器保存日志的文件和当前的位置
2)从服务器:
show slave status\G;
查看从服务器的状态,包括读取主服务器的哪个文件以及当前读取的位置