首先,对数据库进行备份。数据库备份命令如下:
另外,还需要准备以下五张数据表:
这里可以写一个脚本程序,从全新的 MySQL 数据库中导出:
set -e
TABLELIST="innodb_index_stats"
TABLELIST="${TABLELIST} innodb_table_stats"
TABLELIST="${TABLELIST} slave_master_info"
TABLELIST="${TABLELIST} slave_relay_log_info"
TABLELIST="${TABLELIST} slave_worker_info"
/usr/bin/mysqldump -uroot -plucky2012 mysql ${TABLELIST} > mysql_innodb_tables.sql
执行上述脚本,可以导出 mysql_innodb_tables.sql 文件。
一、主服务器的配置
假设主服务器为 10.18.16.188。
1、停止 MySQL 数据库
2、修改配置文件:
添加如下代码:
log-bin=mysql-bin
log-bin=mysql-bin.log
binlog-do-db=blog
binlog-ignore-db=mysql
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
其中,第一行是必须的,默认是 1;第二行是必须的,启用二进制日志;第三行是必须的,数据库日志文件;第四行是要记录的数据库,多个的时候可以换行多次设置;第五到第八行不对 MySQL 自带的库进行日志记录操作。
3、进入到 /var/lib/mysql 目录下,删除如下文件:
4、进入到 /var/lib/mysql/mysql 目录下,使用如下命令删除五个数据表文件:
[root@RicenOS mysql]# rm -rf innodb_table_stats.*
[root@RicenOS mysql]# rm -rf slave_master_info.*
[root@RicenOS mysql]# rm -rf slave_relay_log_info.*
[root@RicenOS mysql]# rm -rf slave_worker_info.*
5、启动 MySQL 数据库
6、导入之前准备的 mysql_innodb_tables.sql 文件:
mysql> source /root/mysql_innodb_tables.sql
7、创建用于主从复制的帐号:
8、对主数据库进行锁表:
9、开启另外一个会话窗口,登录到 MySQL,查看两个值:二进制日志文件及其位置。
10、对主数据库表进行解锁:
二、从服务器的配置
1、停止 MySQL 数据库
2、修改配置文件:
添加如下代码:
log-bin=mysql-bin.log
replicate-do-db=blog
replicate-ignore-db=mysql
replicate-ignore-db=test
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
log-slave-updates
其中,第一行是必须的,数字大于 1 即可;第二行是必须的,数据库日志文件;第三行是要复制的数据库,多个的时候可以换行多次设置;第四到第七行不对 MySQL 自带的库进行复制操作;第八行将从服务器的更新写入二进制日志。
3、进入到 /var/lib/mysql 目录下,删除如下文件:
4、进入到 /var/lib/mysql/mysql 目录下,使用如下命令删除五个数据表文件:
[root@RicenOS mysql]# rm -rf innodb_table_stats.*
[root@RicenOS mysql]# rm -rf slave_master_info.*
[root@RicenOS mysql]# rm -rf slave_relay_log_info.*
[root@RicenOS mysql]# rm -rf slave_worker_info.*
5、启动 MySQL 数据库
6、导入之前准备的 mysql_innodb_tables.sql 文件:
mysql> source /root/mysql_innodb_tables.sql
7、从数据库设置复制的主数据库信息:
8、启动从数据库的复制线程:
9、查询从数据库的slave状态:
如果以下两个参数都是Yes,说明主从配置成功:
Slave_SQL_Running: Yes
三、还原数据库
mysql> create database blog default character set utf8;
mysql> use blog
mysql> source /root/blog_20160123.sql
Copyright © 2005-2023 by www.ricensoftwares.com.cn All Rights Reserved.