环境:
主从服务器上的
MySQL
数据库版本同为
5.1.34
主机
IP
:
192.168.64.135
从机
IP
:
192.168.64.136
一
. MySQL
主服务器配置
1.
编辑配置文件
/etc/my.cnf
#
确保有如下行
server-id = 1
log-bin=mysql-bin
binlog-do-db=mysql #
需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
binlog-ignore-db=mysql #
不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可
log-slave-updates #
这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors #
是跳过错误,继续执行复制操作
2.
建立用户
mysql> insert into mysql.user(Host,User,Password) values('localhost','slave',password('benson')); #
建立
MySQL
主从数据库同步用户
slave
密码
benson
mysql> flush privileges; #
刷新系统授权表
mysql> grant replication slave on *.* to 'slave'@'192.168.64.136' identified by '123456' with grant option; #
授权用户
osyunweidbbak
只能从
192.168.64.136
这个
IP
访问主服务器
192.168.64.135
上面的数据库,并且只具有数据库备份的权限
3.
锁主库表
mysql> FLUSH TABLES WITH READ LOCK;
4.
显示主库信息
记录
File
和
Position
,从库设置将会用到
=====================
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | | |
+------------------+----------+--------------+------------------+
5.
另开一个终端,打包主库
cd /usr/local/mysql #mysql
库目录
tar zcvf var.tar.gz var
============================
二
.MySQL
从服务器配置
1
、传输拿到主库数据包、解包
# cd /usr/local/mysql
# scp 192.168.0.1:/usr/local/mysql/var.tar.gz .
# tar zxvf var.tar.gz
2
、查看修改
var
文件夹权限
# chown -R mysql:mysql var
3.
编辑
/etc/my.cnf
server-id=2
log-bin=mysql-bin
master-host=192.168.0.1
master-user=slave
master-password=111111
master-port=3306
replicate-do-db=test #
需要备份的数据库名
replicate-ignore-db=mysql #
忽略的数据库
master-connect-retry=60 #
如果从服务器发现主服务器断掉,重新连接的时间差
(
秒
)
log-slave-updates #
这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors #
是跳过错误,继续执行复制操作
4
、验证连接
MASTER
# mysql -h192.168.0.1 -uslave -ppassword
5
、在
SLAVE
上设置同步
设置连接
MASTER MASTER_LOG_FILE
为主库的
File
,
MASTER_LOG_POS
为主库的
Position
============================
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.64.135',MASTER_USER='slave',MASTER_PASSWORD='benson',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=106;
6
、启动
SLAVE
服务
mysql> slave start;
7
、查看
SLAVE
状态
mysql> SHOW SLAVE STATUS\G;
其中
Slave_IO_Running
和
Slave_SQL_Running
两列的值都为
"Yes"
,表明
Slave
的
I/O
和
SQL
线程都在正常运行。
8
、解锁主库表
mysql> UNLOCK TABLES;
到此主从库搭建成功。可以在主库上插入数据测试同步是否正常。
9.
测
试
MySQL
主从服务器双机热备是否成功
1
、进入
MySQL
主服务器
mysql -u root -p #
进入
MySQL
控制台
use osyunweidb #
进入数据库
CREATE TABLE test ( id int not null primary key,name char(20) ); #
创建
test
表
2
、进入
MySQL
从服务器
mysql -u root -p #
进入
MySQL
控制台
use osyunweidb #
进入数据库
show tables; #
查看
osyunweidb
表结构,会看到有一个新建的表
test
,表示数据库同步成功