环境:
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)
主从服务器成功同步!!!
阅读(884) | 评论(1) | 转发(0) |