mysql主从配置
配置主从数据库步骤
1.搭建从库环境(安装mysql)
2.主库需要开启binlog日志
配置文件中配置
log-bin=mysql-bin
binlog_format=ROW
server_id = 1 //该配置为唯一值,从库中不能存在相同的值
配置后必须重启mysql才能生效,reload是不生效的
在主库创建同步帐号
grant replication slave on *.* to‘test’@’192.168.1.%’ identified by ‘123’;
flush privileges;
3.查看当前主库的binlog位置
mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 823427318 | | | |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
保存好备用
4.将主库数据导出,并导入到从库中
使用mysqldump
或使用tidb的工具包(推荐很好用,特点速度快)
# 下载 tool 压缩包
wget http://download.pingcap.org/tidb-enterprise-tools-latest-linux-amd64.tar.gz
wget http://download.pingcap.org/tidb-enterprise-tools-latest-linux-amd64.sha256
# 检查文件完整性,返回 ok 则正确
sha256sum -c tidb-enterprise-tools-latest-linux-amd64.sha256
# 解开压缩包
tar -xzf tidb-enterprise-tools-latest-linux-amd64.tar.gz
cd tidb-enterprise-tools-latest-linux-amd64
./bin/mydumper -h 127.0.0.1 -P 3306 -u root -t 16 -F 64 -B test -T t1,t2 --skip-tz-utc -o ./var/test
./bin/loader -h 127.0.0.1 -u root -P 4000 -t 32 -d ./var/test
详细说明参见:这里
5.配置从库
log-bin=mysql-bin //binlog日志
binlog_format=ROW //binlog日志
server-id = 81 //集群中唯一
innodb_file_per_table = ON
skip_name_resolve = ON
relay_log = /log/relay.log //同步日志存放地址
log-slave-updates = true
replicate-ignore-db=database //用来忽略不同步的数据库
replicate-wild-ignore-table=database.% //用来忽略不同步的数据库的表
replicate-do-db=database //用来指定要同步的数据库
replicate-do-db=database
replicate-do-db=database
replicate-do-db=database
replicate-wild-do-table=database.% //指定要同步的表
replicate-wild-do-table=database.%
replicate-wild-do-table=database.%
replicate-wild-do-table=database.%
slave-skip-errors=1032,1060,1062,1050 跳过错误
read_only=ON
6.启动同步
连接到从库执行
mysql>CHANGE MASTER TO MASTER_HOST='10.11.11.101',MASTER_USER='repl', MASTER_PASSWORD='repl@110',MASTER_LOG_FILE=‘mysql-bin.000001’,MASTER_LOG_POS=823427318;
logfile和logpos使用上边(步骤3中)主库打印出来的mysql-bin.000001和823427318
mysql>start slave
mysql> show slave status\G 查看同步信息
如果遇到错误,根据错误提示修改从库数据或数据结果
或者使用
mysql>stop slave 停止同步
mysql>set global sql_slave_skip_counter=1; 设置跳过错误
mysql>start slave 开始同步
mysql> show slave status\G 查看同步信息
mysql>reset slave 重置同步
忽略指定错误码的错误
slave-skip-errors=1032,1060,1062,1050
配置帐号允许外部访问方法
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;