设置mysql的主从服务器

来源:互联网 发布:金融专业就业前景知乎 编辑:程序博客网 时间:2024/04/30 08:52

mysql从 3.22版后,推出了master和slave服务器的设置,使得主从服务器可以实时同步。而不必再写脚本,通过备份数据库文件的方式。

下面是一个例子,配置一个mysql replication环境,要求(10.0.0.1)为master
 (10.0.0.2)为slave,且只同步master服务器上的其中一个数据库

登陆master服务器
/usr/local/mysql/mysql -A
mysql>create database test;               ---生成一个测试数据库test
mysql>GRANT FILE ON *.* TO slaver@10.0.0.2 IDENTIFIED BY ‘slaver’;---把文件权限给了10.0.0.2上的slaver用户,密码是slaver。
mysql>GRANT REPLICATION SLAVE ON *.*  TO slaver@10.0.0.2 IDENTIFIED BY ‘slaver’;
mysql>quit
cd /usr/local/mysql/var
tar cvzf test.tar.gz test                           ---把测试数据库打包
scp test.tar.gz 10.0.0.2:/tmp/             ---把测试数据库打包文件传给slave,使用的是ssh隧道
vi /etc/my.cnf,add these lines:          ---编辑master的/etc/my.cnf文件,添加以下行,在[mysqld]段
  log-bin                                                 ---二进制log形式,如果不用这种形式,无法实现replication
  server-id = 1                                      ---指定master的id为1,,master的一定要比slave的小才行
  sql-bin-update-same                     
  binlog-do-db = test                            ----指定要同步的是test数据库,而不是整个数据库,如果不写这一行,就是全部数据库。

/usr/local/etc/rc.d/mysql.server.sh stop
/usr/local/etc/rc.d/mysql.server.sh start

登陆slaver服务器
cd /usr
tar xvzf mysql-4.0.15.tar.gz
cd mysql-4.0.15
./configure --prefix=/usr/local/mysql
make
make install
scripts/mysql_install_db
cp support-files/my-medium.cnf /etc/my.cnf

--------------------以上为安装slave数据库
vi /etc/my.cnf,add these lines:      ------同样编辑/etc/my.cnf文件,在[mysqld]段
 log-bin
 master-host= 10.0.0.1                ----指定master是谁

 master-user= slaver                    -----指定同步时的用户名
 master-password= slaver         ----指定同步的密码
 master-port= 3306
 server-id= 40                                 ----slave的id
 master-connect-retry= 60
 replicate-do-db= test                -----要复制的数据库
 log-slave-updates

cp /tmp/test.tar.gz /usr/local/mysql/var/
tar xvzf test.tar.gz

----------------以上是把test数据库安装在slave,使得有一个原始数据
cp support-files/mysql.server /usr/local/etc/rc.d/mysql.server.sh
/usr/local/etc/rc.d/mysql.server.sh start