配置复制
1.配置server-id和log-bin
2.主库中添加用于复制的用户
GRANT REPLICATION SLAVE,reload,super ON *.*
TO 'repl'@'%.vm.dba.com' IDENTIFIED BY 'slavepass'
3.在从库上设置用于复制的选项
server-id
master-host
master-user
master-password
--read-only 该选项让从服务器只允许来自从服务器线程或具有SUPER权限的用户的更新。可以确保从服务器不接受来自客户的更新。
--replicate-do-db=db_name 告诉从服务器限制默认数据库(由USE所选择)为db_name的语句的复制。
--replicate-wild-do-table=db_name.% 跨数据库进行更新
--replicate-do-table=db_name.tbl_name 告诉从服务器线程限制对指定表的复制。
--replicate-ignore-db=db_name 告诉从服务器不要复制默认数据库(由USE所选择)为db_name的语句。
--replicate-ignore-table=db_name.tbl_name 告诉从服务器线程不要复制更新指定表的任何语句(即使该语句可能更新其它的表)。
--replicate-wild-do-table=db_name.tbl_name 告诉从服务器线程限制复制更新的表匹配指定的数据库和表名模式的语句。
--replicate-wild-ignore-table=db_name.tbl_name 告诉从服务器线程不要复制表匹配给出的通配符模式的语句。
--replicate-rewrite-db=from_name->to_name 告诉从服务器如果默认数据库(由USE所选择)为主服务器上的from_name,则翻译为to_name。
--skip-slave-start 告诉从服务器当服务器启动时不启动从服务器线程。使用START SLAVE语句在以后启动线程。
--slave-skip-errors=[err_code1,err_code2,... | all] 该选项告诉从服务器SQL线程当语句返回任何选项值中所列的错误时继续复制。
4.从主库同步数据到从库
4.1 load data from master;
4.2 备份还原方式
4.2.1 启动从服务器。如果前面已经复制了,用--skip-slave-start选项启动从服务器,以便它不立即尝试连接主服务器。
4.2.2 如果使用mysqldump备份主服务器的数据,将转储文件装载到从服务器。
cmd> mysql -u root -p < dump_file.sql
4.2.3 设置连接参数
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
4.2.4 启动从服务器线程:
mysql> START SLAVE;
5.重启从库服务
5.测试
主库:create database replTest;
show databases;
从库:show databases;
监控复制
mysql> SHOW PROCESSLIST/G;
查看同步的点
1. mysql> show master status;
2. 从库 relay-log.info
如果丢失了中继日志但仍然有relay-log.info文件,你可以通过检查该文件来确定SQL线程已经执行的主服务器中二进制日志的程度。然后可以用Master_Log_File和Master_LOG_POS选项执行CHANGE MASTER TO来告诉从服务器重新从该点读取二进制日志。当然,要求二进制日志仍然在主服务器上。