如何在Windows下创建两个mysql服务,并做主从数据库

本文介绍如何在同一台Win7操作系统上配置两个独立的MySQL5.6数据库实例,通过更改端口和服务名称实现并确保正常运行。
所在环境清单如下所示
操作系统:Win7
数据库:MYSQL5.6
 
1.按照正确方式安装mysql,详细按照步骤可参照mysql官方文档。
2.在控制面板里停止已安装的mysql(mysql56)服务。
3.将C:\Program Files\MySQL目录下的所有目录和文件copy到另外一个路径,以示区分。
   例如:C:\Program Files\MySQL_slave
4.编辑第二个mysql的my.ini文件

#防止与第一次安装的mysql数据库端口冲突,特修改为3307,此处不做限制,只要是未使用的端口即可
[client]
# The TCP/IP Port the MySQL Server will listen on
port=3307

# 第二个数据库basedir
# Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL_slave/MySQL Server 5.6/"
         

# Path to the database root
datadir="C:/ProgramData/MySQL_slave/MySQL Server 5.6/Data/"
    

具体配置如下图所示:

 
5.创建启动服务(此时在控制面板中可以看到增加了一个新的服务)
打开控制台cmd,使用从数据库服务的mysqld.exe文件的绝对路径创建从mysql服务,防止第六步无法完成注册表ImagePath键的修改。
"C:\Program Files\MySQL_slave\MySQL Server 5.6\bin\mysqld" install MySQL_slave  --defaults-file="C:\ProgramData\MySQL_slave\MySQL Server 5.6\my.ini"
 
6.修改注册表
HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services
找到刚才创建的MySQL_slave,将ImagePath修改成如下":
"C:\Program Files\MySQL_slave\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL_slave\MySQL Server 5.6\my.ini" MySQL_slave


最终完成两个mysql服务的配置如下图所示:

### Windows系统下MySQL主从同步配置教程 #### 1. 环境准备 在开始配置之前,确保两台MySQL服务器均已正确安装运行。可以通过以下命令确认MySQL服务的状态: ```bash net start | findstr /i "mysql" ``` 如果未找到相关服务,则需要先完成MySQL的安装和初始化工作[^4]。 --- #### 2. 主服务器配置 ##### 2.1 授权从库访问 进入MySQL控制台,为主库授予从库的复制权限。假设从库IP地址为`192.168.1.100`,可以执行以下SQL语句: ```sql GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'192.168.1.100' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 此操作会创建一个名为`repluser`的用户,赋予其`REPLICATION SLAVE`权限[^5]。 ##### 2.2 修改主库配置文件 编辑主库的`my.ini`配置文件(通常位于`C:\ProgramData\MySQL\MySQL Server X.X\`),添加或修改以下内容: ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=user_db ``` 其中: - `server-id`:设置唯一的ID号,建议主库设为1。 - `log-bin`:启用二进制日志功能。 - `binlog-do-db`:指定要同步的数据库名称(可选)[^4]。 保存更改后,重启MySQL服务以使配置生效: ```bash net stop mysql net start mysql ``` ##### 2.3 验证二进制日志是否开启 登录到MySQL控制台,输入以下命令查看当前的日志状态: ```sql SHOW MASTER STATUS; ``` 输出应类似于以下内容: ``` +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 107 | user_db | | +------------------+----------+--------------+------------------+ ``` 记录下`File`和`Position`字段的值,稍后将在从库中使用[^4]。 --- #### 3. 从服务器配置 ##### 3.1 复制主库数据 为了确保主从一致,在配置前需将主库的数据导出至从库。可以在主库上执行以下命令生成SQL脚本: ```bash mysqldump --all-databases --single-transaction --master-data=1 -u root -p > backup.sql ``` 随后将该文件传输至从库,导入数据: ```bash mysql -u root -p < backup.sql ``` ##### 3.2 修改从库配置文件 同样编辑从库的`my.ini`文件,添加以下内容: ```ini [mysqld] server-id=2 relay-log=mysql-relay-bin log-slave-updates=true read-only=true ``` 注意这里的`server-id`必须不同于主库,且推荐设置为大于1的唯一整数[^4]。 完成后重启从库的服务。 ##### 3.3 配置主从关系 通过以下命令告知从库如何连接主库以及定位初始位置: ```sql CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repluser', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; ``` 此处的`MASTER_LOG_FILE`和`MASTER_LOG_POS`即为主库中获取的值。 ##### 3.4 启动同步进程 最后启动从库的IO线程和SQL线程: ```sql START SLAVE; ``` 检查同步状态: ```sql SHOW SLAVE STATUS\G ``` 当`Slave_IO_Running`和`Slave_SQL_Running`均为`Yes`时,说明配置成功[^1]。 --- #### 4. 测试主从同步 在主库中向目标表插入一条新纪录,例如: ```sql USE user_db; INSERT INTO user (id, name) VALUES (1, 'Alice'); ``` 切换到从库查询相同表格的内容,验证数据是否已自动更新。 --- #### 常见问题处理 如果遇到`Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs`错误,请检查两个实例的UUID是否重复,手动调整其中一个[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值