今天,试验在一台windows机器上安装了两个mysql服务,并配置主从关系;
环境:Windows XP
MySQL版本号:5.1.50
步骤如下:
1、安装主数据库[master]
利用mysql安装包进行安装 到d:/mysql目录;
2、安装从数据库[slave]
a)将安装完后的主库mysql目录拷贝一份到d盘根目录,d:/mysql_1;
b)打开d:/mysql_1/my.ini文件,修改port、base_dir、data_dir、innodb_data_home_dir;
port=3309
base_dir="d:/mysql_1/"
data_dir="d:/mysql_1/data/"
innodb_data_home_dir="d:/mysql_1/data/"
c)然后到命令行下,利用d:/mysql_1/bin/mysqld.exe注册服务(服务名:mysql_1)
【C:/Documents and Settings/t>】 pushd d:/mysql_1/bin
【D:/mysql/bin>】 d:/mysql_1/bin/mysqld --install mysql_1 --defaults-file=d:/mysql_1/my.ini
提示 "Service successfully installed." 表示服务已注册成功。
d)之后在命令行下执行"net start mysql_1",若执行后状态为RUNNING,表示服务已启动。
3、同步主从数据库
a)主库执行命令,创建一个用户,供从库使用
【mysql>】grant replication slave on *.* to 'slave001'@localhost identified by '123qwe';
b)修改主库的my.ini文件(d:/mysql/my.ini),添加两个参数
server-id=1
log-bin=mysql-bin
c)主库 设置读锁,读取日志文件名和偏移量;备份要同步的数据库(此处备份test);然后解锁
【mysql>】flush tables with read lock;
【mysql>】show master status/G; //得到File为mysql-bin.000001, Position为106
【D:/mysql/bin>】d:/mysql/bin/mysqldump -uroot -p test > test.sql
【mysql>】unlock tables;
d)修改从库的my.ini文件(d:/mysql_1/my.ini),添加server-id(值与主库不能相同)
server-id=2
e)导入主库备份的test.sql
【D:/mysql_1/bin>】d:/mysql_1/bin/mysql -uroot -p < test.sql
f)对从库进行相应设置
【mysql>】change master to master_host='localhost';
【mysql>】change master to master_user='slave001';
【mysql>】change master to master_password='123qwe';
【mysql>】change master to master_port='3306';
【mysql>】change master to master_log_file='mysql-bin.000001';
【mysql>】change master to master_log_pos='106';
g)从库 启动slave线程,查看状态
【mysql>】show slave status/G;
若Slave_IO_Running 和 Slave_SQL_Running 都为yes,表明设置成功
h)验证主、从库是否同步
进入主库命令行,执行一条建表语句
【mysql>】use test;
【mysql>】create table test_1(`id` int(11) primary key);
进入从库查看test库中是否有test_1表
【mysql>】use test;
【mysql>】show tables;
若列表中有test_1表,说明配置主从数据库成功。