Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299398
  • 博文数量: 42
  • 博客积分: 2550
  • 博客等级: 少校
  • 技术积分: 475
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-30 15:23
文章分类

全部博文(42)

文章存档

2012年(2)

2010年(2)

2009年(13)

2008年(19)

2007年(6)

我的朋友

分类: Mysql/postgreSQL

2007-11-23 16:08:17

环境:
1 VMware Workstation 6虚拟机中的FreeBSD6.2+Mysql5.0.41  IP: 192.168.1.201;
2 宿主主机XP sp2+mysql5.0.41  IP: 192.168.1.200;
 
过程:
一 搭建并配置Mysql主服务器(FreeBSD)
1.从
下载 mysql-5.0.41-freebsd6.0-i686.tar.gz 到 FreeBSD的/usr/local/src目录.
2.创建mysql用户和用户组
#pw groupadd mysql     <--创建mysql用户组
#useradd mysql         <--创建mysql用户
#pw groupmod mysql -M mysql  <--将mysql用户添加到mysql用户组中
3.从mysql官方网站下载的是已经编译好的版本.所以可以直接解压后使用.
#cd /usr/local/src
#tar zxvf mysql-5.0.41-freebsd6.0-i686.tar.gz -C /usr/local
#cd ..
#mv mysql-5.0.41-freebsd6.0-i686  mysql
#chown -R root:mysql mysql
#chown -R mysql:mysql mysql/data
#cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
#/usr/local/mysql/bin/mysqld_safe --user=mysql&
测试mysql安装是否成功.
4.Mysql数据库启动成功之后以root用户进入数据库
#/usr/local/mysql/bin/mysql -u root
mysql>GRANT REPLICATION SLAVE ON *.* TO
replicuser@"192.168.1.200" IDENTIFIED BY "456123";
如果你计划从从属服务器主机使用LOAD TABLE FROM MASTER或LOAD DATA FROM MASTER语句,你需要授予该账户SELECT,RELOAD和SUPER权限;
mysql>FLUSH TABLES WITH READ LOCK;
mysql>SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 98       |              |                  |
+------------------+----------+--------------+------------------+       
记录下Filee,Position这两个值.等一下配置从属服务器时要用到.File列显示日志名,而Position显示偏移量.Position一定是要不为0的正整数值.如果Position为0就表示这台数据库服务器没有开启二进制日志.
记录日志名和偏移量后,不解锁表关闭服务器以确保服务器关闭时的快照与当前的日志文件和偏移量相对应.
#/usr/local/mysql/bin/mysqladmin -u root shutdown
5.修改/etc/my.cnf文件.
在[mysqld]下添加类似如下的语句:
log-bin=mysqlmaster
server-id=1
注:server-id=Master_id选项,其中Master_id必须为1到2的32方–1之间的一个正整数值.

二 搭建并配置mysql从服务器(windows)
1.在
下载 mysql-5.0.41-win32.zip 之后安装.
2.找到安装后的my.ini(在我本机上是在mysql的安装目录下)并在[mysqld]下添加如下语句:
server-id=2
注:server-id=Slave_id选项,其中Slave_id必须为1到2的32方–1之间的一个正整数值.从服务器的ID必须与主服务器的ID不相同.
3.重启mysql服务,测试使用replicuser用户能否远程连接上主服务器数据库.成功就可以进行下一步了.
mysql>CHANGE MASTER TO
    ->     MASTER_HOST='192.168.1.201',           -- 主服务器名或IP地址
    ->     MASTER_USER='replicuser',             
    ->     MASTER_PASSWORD='456123',
    ->     MASTER_LOG_FILE='mysql-bin.000001',    -- 日志名
    ->     MASTER_LOG_POS=98;                     -- 显示偏移量     
mysql>START SLAVE;                                -- 启动从服务器线程

三 主从服务器之间同步测试
1.启动主从服务器数据库
在主服务器数据库上做如下操作:
mysql>SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 1
   User: replicuser
   Host: 192.168.1.200:3876
     db: NULL
Command: Binlog Dump
   Time: 690
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
*************************** 2. row ***************************
     Id: 2
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
2 rows in set (0.01 sec)
在从服务器数据库上操作:
mysql>SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 2
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 25706
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 1
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 2326
  State: Has read all relay log; waiting for the slave I/O thread to update it
   Info: NULL
*************************** 3. row ***************************
     Id: 6
   User: root
   Host: localhost:4023
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: show processlist
3 rows in set (0.05 sec)
如出现上述语句证明主从服务器已经连接正常,可以进行同步了.

2.进行数据同步测试
主从服务器都是刚装好的,只有数据库mysql,information_schema,test这三个数据库.
主服务器
mysql>SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.16 sec)
mysql>CREATE DATABASE replic;
Query OK, 1 row affected (0.02 sec)
从服务器
mysql>SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
| replic             |
+--------------------+
4 rows in set (0.02 sec)
主从服务器成功同步!!!
阅读(852) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

秋水凌波2008-02-11 15:50:34

我是来玩玩的