一、表结构表数据的下载与导入
-
下载表结构
mysqldump -h'主库地址' -u'username' -p --opt -d '数据库名' --set-gtid-purged=OFF > /root/'表结构'.sql
-
下载表数据
mysqldump -h'主库地址' -u'username' -p -t '数据库名' --set-gtid-purged=OFF > /root/'表数据'.sql
<em>此处增加--set-gtid-purged=OFF是因为mysql在5.6以后,加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。但导致了下载出问题,所以增加这个参数。</em>
-
进入本地mysql,创建同名数据库'数据库名'.
create database '数据库名'
-
进入数据库'数据库名'
use '数据库名'
-
导入表结构
source /root/'表结构'.sql
-
导入表数据
source /root/'表数据'.sql
二、配置文件
-
修改mysql配置/etc/my.cnf
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid server_id = 175 #从库ID replicate-do-db = '数据库名' #设置要同步的库,一定注意,这里的article是要同步的库。 gtid_mode=on #打开gtid同步 enforce_gtid_consistency= 1 log-slave-updates=1 binlog_format = row #binlog日志格式 max_binlog_size = 500M #一个日志文件的大小 expire_logs_days = 10 #保留10天的日志
-
重启数据库
systemctl restart mysqld
三、配置主从同步
-
从库进入mysql
mysql -uroot -p
-
mysql中执行
set global gtid_purged='28ea2b52-bc80-11e8-9619-7cd30ae45bb4:1-1728981,3b74bb1e-bc80-11e8-8117-6c92bf475963:1-4289931';
<em>#gtid_purged的值可在主库或第1步中主库导出的文件中查找到</em>
<em>或在主库中按下面方式查询</em>mysql> show global variables like 'gtid_purged';
+---------------+------------------------------------------------------------------------------------------------+
| gtid_purged | 28ea2b52-bc80-11e8-9619-7cd30ae45bb4:1-1728981,
3b74bb1e-bc80-11e8-8117-6c92bf475963:1-4289931 |
+---------------+------------------------------------------------------------------------------------------------+
- 然后
change master to master_host='主库地址',master_user='username',master_password='password',master_port=3306,master_auto_position=1;
start slave;
至此,主从同步设置完成。
查看slave状态
show slave status \G;
其中,以下二值必须为yes
Slave_IO_Running: Yes
Slave_SQL_Running: Yes