加载中…
个人资料
嘉妈301
嘉妈301
  • 博客等级:
  • 博客积分:0
  • 博客访问:18,297
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Mysql replication 配置

(2010-06-10 13:44:33)
标签:

杂谈

分类: 工作


操作系统:中标Linux

Mysql版本:mysql-server.i386 0:5.0.45-7.el5

(注:安装mysql是用的yum命令)

MasterIP192.168.2.122

SlaveIP192.168.2.123

1         主机master设置

1.1        测试用数据库

1.        建立名为test1的数据库

create database test1;

2.        建立表名为test1的表

CREATE TABLE `test1` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,   `name`  varchar(100) ,   PRIMARY KEY (`id`)   );

3.        在表test1中插入3条测试数据

INSERT INTO `test1` VALUES (1,'name1');

INSERT INTO `test1` VALUES (2,'name2');

INSERT INTO `test1` VALUES (3,'name3');

1.2        设置Mysql Replication

1.        增加一用于数据库同步的用户root

mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO 'root'@'192.168.2.123' IDENTIFIED BY 'password';

(授与从192.168.2.123主机上登录用户root数据复制权限)

2.        使权限生效,这步可不做,因为过会要重启mysql

mysql>flush privileges;

3.        退出mysql命令行界面

mysql> exit

4.        停止mysql服务

service mysqld stop

5.        更改Mysql配置文件/etc/my.cnf

1)        打开mysql配置文件

vi /etc/my.cnf

2)        在配置文件中添加以下内容

log-bin= mysql-bin

server-id=1

binlog-do-db= test1

6.        将要进行热备的数据库test1打包

tar czvf /var/lib/mysql/test1.tar.gz test1

7.        启动Mysql

service mysqld start

2         备机slave设置

1.        更改Mysql配置文件/etc/my.cnf

3)        打开Mysql的配置文件

vi /etc/my.cnf

4)        在配置文件中添加以下内容

master-host = 192.168.2.122

master-user = root

master-password = password

master-port = 3306

master-connect-retry = 10

replicate-do-db = test1

2.        将先前(1.2中第6步)从master打包的数据库文件test1.ter.gz发送到备机slave的相应目录下,本次在/var/lib/mysql目录,解压文件并修改其可执行权限

cd /var/lib/mysql

tar zxvf  test1.tar.gz

chmod 700 test1

chmod 660 test1

3.        重新启动Mysql服务

service mysqld  restart

4.        启动slave

mysql> START SLAVE;

查看slave状态:

mysql> show slave status\G;

*************************** 1. row ***************************

             Slave_IO_State: Waiting for master to send event

                Master_Host: 192.168.2.122

                Master_User: root

                Master_Port: 3306

              Connect_Retry: 10

            Master_Log_File: mysql-bin.000002

        Read_Master_Log_Pos: 582

             Relay_Log_File: mysqld-relay-bin.000005

              Relay_Log_Pos: 515

      Relay_Master_Log_File: mysql-bin.000002

           Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

            Replicate_Do_DB: test1,test1

        Replicate_Ignore_DB:

         Replicate_Do_Table:

     Replicate_Ignore_Table:

    Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

                 Last_Errno: 0

                 Last_Error:

               Skip_Counter: 0

        Exec_Master_Log_Pos: 582

            Relay_Log_Space: 515

            Until_Condition: None

             Until_Log_File:

              Until_Log_Pos: 0

         Master_SSL_Allowed: No

         Master_SSL_CA_File:

         Master_SSL_CA_Path:

            Master_SSL_Cert:

          Master_SSL_Cipher:

             Master_SSL_Key:

      Seconds_Behind_Master: 0

1 row in set (0.00 sec)

******************************************************

可以看到

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果都是yes,代表已经在同步

至此server服务器上的Mysql设置完毕

3         测试

1.        主机和备机都正常运行情况,对主机进行增加一条记录INSERT INTO `test1` VALUES (6,'name6'); 检测备机是否也增加了此条记录,经检查,数据相同

2.        主机和备机都正常运行情况,在主机没有对数据库操作的情况下测试主备数据是否一致,经查看主机和备机的的test1表,记录相同,说明备机成功复制数据。

3.        主机和备机都正常运行情况,停掉备机mysql,对主机进行添加记录的操作,然后再重启备机mysql,经检查,两边数据完全一致。

4.        主机和备机都正常运行情况,在主机执行mysql> delete from test1 where id=3; 检测两边数据是否一致。经检查,两边数据完全一致。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有