mysql不会用,有时间还要好好学习学习。

                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-do-db=jason                    ## 要热备份的数据库,如果备份多个数据库,重复设置这个选项即可

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上面查看哈哈表。看看数据是不是同步。