单PC Windows环境MySQL主从master-slave模式配置与测试

一、 搭建环境:
OS:Windows 7系统
DB:单PC装两个相同版本MySQL Server 5.5位于不同盘符(亦可相同磁盘)。
HOST:主从服务器主机地址均为localhost:127.0.0.1
PORT:主服务器端口:3306,从服务器端口:3307

这台测试PC之前未装过mysql,若原来有mysql再想装恐怕得尝试免安装版。若直接通过msi安装器装会冲突,这就是为什么下面安装从服务器的时候要直接copy文件而不是再次双击安装文件。当然也可以卸载原来的mysql再做下面的步骤,同时注意完全卸载删除残留文件夹的同时,别忘了还有注册表。
二、 配置:
1、 主服务器:
普通安装配置mysql,这里测试安装于C盘C:\Program Files\MySQL\MySQL Server 5.5
配置时注意几点:
1.1、 配置的时候选择detailed configuration可以做详细配置。

1.2、 将其配置为server machine或者detailed server machine,如果选择的是developer machine开发测试型那mysql将占用较少资源最后不一定好使。

1.3、 编码默认为latin1,可以选择为gbk或者gb2312。

1.4、 server name默认为:MySQL,为区分改为MySQLmaster或者别的标识为主服务器。

1.5、 如果设置了登录密码,最好记住它,用户名是root。


2、 从服务器:
2.1、 在服务里面把第一个MySQLmaster的服务停掉。具体步骤:我的电脑->右键服务。也可以控制台输入命令:net stop MySQLmaster。
2.2、 将刚刚主服务器安装的文件C:\Program Files\MySQL\MySQL Server 5.5目录下的所有目录和文件copy到另外一个路径,我这里是copy到了G盘G:\MySQL\MySQL Server 5.5。
2.3、 修改从服务器文件中的my.ini配置文件,修改内容如下:

第一个数据库的默认端口是3306 这里需要另外启用一个端口,我用的从服务器端口3307:

# CLIENT SECTION
[client]
port=3307 

# SERVER SECTION
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3307


修改或者添加数据库的目录:

[mysqld]
#Path to installation directory. All paths are usually resolved relative to this.
basedir="G:/MySQL/MySQL Server 5.5/"
#Path to the database root
datadir="G:/MySQL/MySQL Server 5.5/Data/"


修改或者添加server-id(主服务器默认为1,所以这里设置为2):
# required unique id between 1 and 2^32 – 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 2


修改或者添加指定需要复制的数据库(可以复制该条“replicate-do-db=数据库名”指定多个数据库):
replicate-do-db = test


跳过启动验证(可选添加,跳过加载授权表预防启动验证通不过):
skip-grant-tables


2.4、 创建服务

进cmd,输入命令:

mysqld –install MySQLslave –defaults-files=” G:\MySQL\MySQL Server 5.5\my.ini”

这里的MySQLslave是自己取的服务的名字,对应前面主服务器的服务名称MySQLmaster,后面路径是配置文件my.ini的路径。
2.5、 修改注册表

找到注册表项:HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services-->MySQLslave,将ImagePath修改为:

" G:\MySQL\MySQL Server 5.5\bin\mysqld" --defaults-file=" G:\MySQL\MySQL Server 5.5\my.ini " MySQLslave

具体步骤:点击开始->在输入框中输入regedit回车打开注册表编辑器。
2.6、 测试服务是否成功创建
打开服务开启刚刚创建的服务MySQLslave或者控制台输入命令:net start MySQLslave,成功开启OK。
若出现错误1067,多半是配置文件my.ini出错,仔细检查地址是否填对,端口是否被占用等。
若出现错误:找不到指定文件,检查下注册表里的路径是不是填错了。

3. 主服务器
3.1、 修改主服务器文件中的my.ini配置文件,修改内容如下:
端口地址server-id参照从服务器做对应修改:
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

# required unique id between 1 and 2^32 – 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1


指定用于被复制的数据库(可以多个):
binlog-do-db=test


添加开启log-bin二进制日志文件:
[mysqld]
# Replication Master Server (default)
# binary logging is required for replication
# log-bin deactivated by default since XAMPP 1.4.11
log-bin=mysql-bin


3.2、 创建一个复制用户,具有replication slave的权限:
mysql>grant replication slave on *.* to ‘slave0’@’localhost′ identified by ‘123’;


3.3、 开启mysql,进入到主服务器mysql的目录:
若直接输入命令:mysql start出现下列错误,则输入一下命令:mysql –u root –p再根据提示输入密码就能成功开启。

3.4、 得到log-bin日志文件中的文件名和偏移量
mysql>show master status; 


3.5、 这一步适用于主服务器要复制的数据库已经有数据的情况,就需要先将原来的数据全部一次性备份到从数据库,如果是新建的空数据库则不需要这一步。
先建立读锁:mysql>flush tables with read lock;
再备份同步数据库:mysqldump test > test.sql;
解锁:mysql>unlock tables;

4. 再次配置从服务器
4.1、 启动从服务器mysql。
4.2、 进行相应设置(这些设置原本是可以直接写在my.ini里面,但是不推荐这么做,并且有的版本不支持这么做):
mysql> change master to
-> master_host='localhost',
-> master_user='slave0',
-> master_password='123',
-> master_log_file='mysql-bin.000010', 
-> master_log_pos=107;

其中master_log_file和master_log_pos这两项的值为上面主服务器show master status记录下来的值。
4.3、 开启slave线程:
mysql>start slave;

4.4、 执行show processlist命令显示以下进程:
mysql>show processlist\G 


可以看到info是null,表示已经连接上masyer并等待接收执行日志。state是对的就行了。
4.5、 查看slave线程状态:
mysql>show slave status;

验证是否配置正确。
4.6、 执行
mysql> show slave status\G


Slave_IO_Running: Yes
Slave_SQL_Running: Yes
若以上两项均为YES,说明两个线程都跑起来了就OK。
三、 测试:
在主服务器上面的指定复制的数据库中创建表,插入数据,在从服务器中能查看到相应的数据即表明主从复制环境搭建成功。

到此主从模式搭建完成。有任何疑问可以电邮我:luckymelina@qq.com
GOOD LUCK!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值