MySQL 多实例配置
前面介绍如何在 Windows 、Linux 下安装最新版 MySQL ,本节主要介绍如何在同一台主机上配置多实例 MySQL。
1. 端口号概念
所谓的端口,就好像是门牌号一样,客户端可以通过 ip 地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号 。
而 MySQL 服务默认指定的端口号为 3306,这个在之前介绍安装 MySQL 的时候,其中配置 my.ini 文件的内容时候,其中就有端口号配置,内容如下:
2. MySQL 多实例应用场景
企业在项目开发过程中,会有各种各样差异化的功能需求,这些不同的功能需求可能对 MySQL 版本有着不同的要求。
例如某公司官网开发时,使用的是 MySQL5.1 版本,但又有了一个新的开发项目进行,新的项目要求 MySQL 版本至少要 MySQL5.7,这时候假如只有一台服务器的情况下,就需要配置两种不同版本的 MySQL。
对于操作系统来说,一个端口号只允许一个软件服务占用,但如果不进行相应的处理,MySQL 默认端口号是 3306,这会导致不同实例的 MySQL 之间会有占用端口号冲突的情况,从而无法正常运行。
而对于拥有更多业务的企业来说,配置多实例 MySQL 也是为了更好地方便管理,之前介绍过安装最新版 MySQL,并且启动 8.0 版本的 MySQL 的默认端口是 3306。本小节为了演示方便,都使用 MySQL8.0 配置多实例。
3.安装 MySQL 多实例步骤
前面章节介绍过 Windows 下安装最新版 MySQL,这里我们把下载好的安装包复制两份并分别重新命名为 “mysql3308”、“mysql3309”,如图所示:
接下来介绍如何安装启动端口号分别为 3308、3309 的 MySQL 实例,如果想要配置更多 MySQL 实例,也可参考此方法新增多个 MySQL 实例。
1. 进入"mysql3308"目录,新建 my.ini" 文件,内容如下:
[mysqld]
# 设置3308端口
port=3308
# 设置mysql的安装目录
basedir=D:WWWmysqlmysql3308
# 设置mysql数据库的数据的存放目录
datadir=D:WWWmysqlmysql3308data
# 允许最大连接数
max_connections=200
#允许连接失败的次数。防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3308
default-character-set=utf8
如下图所示 :
2. 以管理员身份打开 cmd 命令,进入 D:WWWmysqlmysql3308bin
目录,执行初始化命令,命令如下:
命令 : mysqld --initialize --console
初始化成功如下图所示:
3. 加载 MySQL 服务,注意之前安装 MySQL 已经加载过 MySQL 服务,为了防止冲突,需要区分,命令如下:
命令 : mysqld install mysql3308
加载安装成功如下图所示:
4. 此时可以启动 mysql3308 服务了,启动命令如下:
命令 : net start mysql3308
启动成功如下图所示:
5. 用 3308 端口号登录 MySQL,登录命令如下:
命令 : mysql -uroot -p -P3308
登录过程如图所示:
登录成功之后如下图所示:
6. 至此 安装 3308 端口 MySQL 实例完成,后续参照此方法继续完成 3309 号端口 MySQL 服务即可,每次新增一个实例要保证 my.ini 配置文件端口号配置不冲突即可,安装 3309 端口号实例如下图所示:
以上为配置文件 my.ini 内容,下图为 mysql3309 服务启动过程图:
3. 小结
本小节介绍了如何在同一台主机操作系统上配置多个 MySQL 实例,这些不同的 MySQL 服务互相独立,分开管理,需要注意的是每个 MySQL 服务需要使用一个唯一的端口号,与其他类似服务之间也是如此,不能和其他类似软件服务之间有端口号冲突,负责会导致 MySQL 服务无法正常运行。
- 还没有人评论,欢迎说说您的想法!