RHEL5 配置mysql双机热备份
环境:
[root@station202 Server]# uname -a
Linux station202.example.com 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux
station202作为主mysql
station204作为从mysql
## 注意mysql版本尽量高点,从服务器的mysql版本必须不低于主服务器的mysql版本。
[root@station202 Server]# rpm -ivh perl-DBD-MySQL-3.0007-1.fc6.i386.rpm mysql-server-5.0.22-2.1.0.1.i386.rpm mysql
-5.0.22-2.1.0.1.i386.rpm perl-DBI-1.52-1.fc6.i386.rpm
[root@station202 Server]# vim /etc/my.cnf
## 添加下面行在[mysqld]段下
server-id=1
log-bin
binlog-ignore-db=不需要备份的数据库苦命,如果备份多个数据库,重复设置这个选项即可
[root@station202 Server]# service mysqld start
[root@station202 Server]# mysqladmin -uroot -p password 'jasonyy' ## 修改root密码
## 开始设置主mysql
[root@station202 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.22
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> grant replication slave on *.* to 'backup'@'%' identified by 'jasonyy';
Query OK, 0 rows affected (0.11 sec)
## 创建一个mysql用户,专门用来备份。
mysql> create database jason;
mysql> insert into haha values('yang','19');
mysql> flush tables with read lock; ## 清空所有表和块写入语句
Query OK, 0 rows affected (0.07 sec)
mysql> create table haha( name char(10), count int(10)); ## 创建一个表haha
mysql> insert into haha values('yang','19'); ## 插入一条记录
mysql> exit
[root@station202 ~]# cd /var/lib/mysql/ ## 进入mysql的数据目录
[root@station202 mysql]# tar zcvf jason.tar.gz jason ## 打包
## 如果从服务器的用户账户与主服务器的不同,你可能不想复制mysql数据库。在这种情况下,应从归档中排除该数据库。你也不
需要在归档中包括任何日志文件或者master.info或relay-log.info文件。
## 想办法把包传到从服务器上,解包到从mysql的数据目录。
[root@station204 Server]# rpm -ivh perl-DBI-1.52-1.fc6.i386.rpm perl-DBD-MySQL-3.0007-1.fc6.i386.rpm mysql-5.0.22-
2.1.0.1.i386.rpm mysql-server-5.0.22-2.1.0.1.i386.rpm
warning: perl-DBI-1.52-1.fc6.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:perl-DBI ########################################### [ 25%]
2:mysql ########################################### [ 50%]
3:perl-DBD-MySQL ########################################### [ 75%]
4:mysql-server ########################################### [100%]
[root@station204 Server]# scp root@192.168.1.202:/var/lib/mysql/mysql-master.tar.gz /var/lib/mysql/
## 我通过scp拷贝过来
[root@station204 Server]# cd /var/lib/mysql/
[root@station204 mysql]# tar zxvf mysql-master.tar.gz ## 解包
## 修改slave
[root@station204 ~]# vim /etc/my.cnf
## 添加下面内容到[mysqld]下
server-id=2
master-host=192.168.1.202
master-user=backup ## master上面的backup用户
master-password=jasonyy
master-port=3306
master-connect-retry=60
replicate-do-db=jason ## 同步jason数据库
log-bin
binlog-do-db=jason ## 其他数据库可以到这里来同步jason数据库
[root@station204 mysql]# service mysqld start
Starting MySQL: [ OK ]
测试:
在master上面继续想haha表中插入数据,
然后到slave上面查看哈哈表。看看数据是不是同步。