Windows系统 Mysql8.0.11:同ip运行两个mysql服务

Windows系统 Mysql8.0.11:同ip运行两个mysql服务

参考文章:https://blog.youkuaiyun.com/imHanweihu/article/details/89404165

1、背景

  • 需要做数据库的读写分离以及主从同步,所以需要运行两个mysql服务。
  • windows系统为windows 10 专业版,mysql为mysql-8.0.11-winx64,下载地址:https://cdn.mysql.com//archives/mysql-8.0/mysql-8.0.11-winx64.zip
  • 注意:如果你电脑中存在mysql的环境变量,若想同时运行两个mysql服务,一定要将其删掉!!

2、安装主库

2.1、下载完成直接解压

解压完之后的目录结构是这样的:
在这里插入图片描述
注意:mysql8没有提供my.ini,也没有my-default.ini。自己创建一个即可。

2.2、my.ini配置

[mysqld]
#主库和从库需要不一致
server-id=47
log-bin=mysql-bin
#同步的数据库
binlog-do-db=java_demo
 
#不需要同步的数据库
binlog-ignore-db=mysql
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=E:\mysql-8.0.11-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-8.0.11-winx64\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

2.3、初始化数据库信息

包括创建数据文件目录、mysql系统数据库、生成root账号和随机密码、修改root账号密码、安装mysqld作为window服务并自动启动。

2.3.1、以管理员身份运行cmd

步骤如下:
1、进入到mysql的安装目录的bin文件夹下
在这里插入图片描述
2、在地址栏输入cmd,然后敲回车,打开cmd
在这里插入图片描述
在这里插入图片描述

2.3.2、创建数据文件目录、mysql系统数据库、生成root账号和随机密码

敲命令:

mysqld --initialize --user=mysql --console

命令解释:

  • –initialize 创建数据文件目录和mysql系统数据库、生成root账号和随机密码
  • –user=mysql 以系统用户mysql去运行
  • –console 将日志打印显示出来(用于获取随机密码)
    在这里插入图片描述
    root@localhost: SKtwjdbbs7#%
    @localhost: 后面就是首次登录密码,生成了一个root账号,密码是SKtwjdbbs7#%
2.3.3、安装mysqld作为window服务并自动启动

敲命令:

mysqld --install mysql11 --defaults-file="E:\mysql-8.0.11-winx64\mysql-8.0.11-winx64\my.ini";
注意:我的mysql服务名为mysql11,名字可以随意起
等号后是你的安装路径
出现Service successfully installed.则安装成功

命令解释:

  • –install 安装mysqld作为window服务 自动启动
  • –defaults-file 默认配置文件

再敲命令:

net start mysql11
注意:我的mysql服务名为mysql11

注意:下图中的黄色部分替换成你自己的。
在这里插入图片描述
下图可以看到服务启动成功

在这里插入图片描述

2.3.4、修改root账号密码

因为使用默认密码操作时会提示你 You must reset your password using ALTER USER statement before executing this statement.所以要修改密码。
继续敲命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';
将root账号的密码改为xxx,密码随意,我这里设置的是密码是root即:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

在这里插入图片描述
到此,主库已成功配置,安装,运行。

3、安装从库

3.1 再解压一份改个名

在这里插入图片描述

3.2、my.ini配置

复制主库的my.ini文件过来,修改server-id,port,basedir,datadir,具体配置如下:

[mysqld]
#主库和从库需要不一致
server-id=48
log-bin=mysql-bin
#同步的数据库
binlog-do-db=java_demo
 
#不需要同步的数据库
binlog-ignore-db=mysql
# 设置3307端口
port=3307
# 设置mysql的安装目录
basedir=E:\mysql-8.0.11-winx64-2
# 设置mysql数据库的数据的存放目录
datadir=E:\mysql-8.0.11-winx64-2\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8

3.3、初始化数据库信息

步骤和主库的一样,此处就不再做赘述,有几个需要注意的地方:

1、以管理员身份运行cmd时:
需要进入到从库的bin目录下执行操作。
2、安装mysqld作为window服务并自动启动安装mysqld作为window服务并自动启动时:
mysql服务名修改,我的主库为mysql11,从库为mysql10,名称随意,不重复即可。
defaults-file需要修改,改为从库的my.ini文件路径。
即步骤2.3.3中图片的黄色圈出部分。

到此,主库、从库已成功配置,安装,运行。

两个mysql服务启动成功:
在这里插入图片描述

相关文章:

PS:
如果博文有写的不对或者有更好的方式,欢迎大家评论或者私信指正。

### 关于 MySQL 使用教程及常见问题解决方案 以下是关于 MySQL 的使用教程以及一些常见的问题及其解决方案: #### 1. 安装 MySQL 对于 Windows 用户,在 Win10 系统下可以按照以下方式安装 MySQL 8.0.11。通过命令 `mysqld --install` 可以完成基本的服务注册,如果需要安装多个服务,则可以通过指定名称的方式实现,例如 `mysqld --install mysql1` 或者 `mysqld --install mysql2` 来区分不MySQL 实例[^2]。 而对于 Linux 用户,尤其是 CentOS 7 平台下的 MySQL 安装过程相对复杂些,但也有详细的教程可供参考。通常情况下,会涉及下载源码包或者 RPM 包并进行编译或配置的过程。此外还需要注意 SELinux 设置可能带来的影响等问题[^3]。 #### 2. 常见错误处理 当利用 Navicat 工具操作 MySQL 数据库时遇到报错信息 `"1064 - You have an error in your SQL syntax"` ,这表明存在语法方面的失误。此时应该仔细核对所编写SQL语句是否存在拼写错误、关键字误用等情况;另外还需确认当前使用的MySQL版本是否完全支持这条特定的SQL指令集[^1]。 #### 3. 授权管理 针对具体用户的权限分配也是日常维护工作中非常重要的一环。例如给定用户名为“zhangsan”的账户仅允许其从本地访问名为“mysqldb”的数据库里的“user”表格,并且只赋予它查询(`SELECT`)和插入(`INSERT`)两项权利的操作如下所示: ```sql GRANT SELECT, INSERT ON mysqldb.user TO 'zhangsan'@'localhost'; ``` 此段脚本明确了哪些动作被许可执行的时也限定了来源IP地址范围必须匹配‘localhost’才能生效[^3]。 #### 4. 连接客户端的选择与设置 作为一款优秀的跨平台图形化界面应用程序,“Navicat”能够很好地帮助我们管理和交互各种主流关系型数据库产品,包括但不限于MySQL 。它的优势在于既适合新手快速上手又能满足高级工程师复杂的业务需求场景[^4]。 --- ### 示例代码片段展示如何验证SQL语法正确性 下面提供了一种简单的 Python 脚本来测试一条SQL语句是否有潜在的解析异常情况发生。 ```python import pymysql.cursors def check_sql_syntax(sql_query): try: connection = pymysql.connect(host='your_host', user='your_user', password='your_password', cursorclass=pymysql.cursors.DictCursor) with connection.cursor() as cursor: result = cursor.execute(sql_query) return True except Exception as e: print(f"Error occurred: {e}") return False test_query = "SELEC * FROM users WHERE id=1;" # Intentional typo here. if not check_sql_syntax(test_query): print("There is a problem with the provided SQL query.") else: print("The SQL query appears to be valid.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值