安装两个MySQL服务

一、安装第一个MySQL

一、下载地址
https://downloads.mysql.com/archives/community/

解压到无中文无空格的目录下


二、在mysql-8.0.25-winx64目录下创建my.ini 文件

用于初始化,默认化字体端口

my.ini文件中填入

[mysqld]
#设置3306端口
port=3306
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

三、开始菜单cmd管理员身份运行命令提示窗口


  1切换到解压目录的bin文件夹(E:\mysql\mysql-8.0.25-winx64\bin>)
E:
cd E:\mysql\mysql-8.0.25-winx64\bin


  2初始化MySQL  生成随机密码"XXX"   for root@localhost: XXXXX   在文件夹中会多出一个Data文件 用于放MySQL数据
 


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

“--initialize”表示初始化数据库。
“--user=mysql”表示使用 mysql 用户来运行 MySQL 服务。
“--console”表示在控制台中输出初始化信息。
  3安装MySQL服务(安装完成后在任务管理器-服务中可以看到)


mysqld --install


执行 mysqld --install 命令时,如果没有指定服务名称,MySQL 会使用默认的服务名称“MySQL”进行安装。
mysqld --install 【服务名称】


  4启用MySQL服务    


net start MySQL  


        报错
                E:\mysql\mysql-8.0.25-winx64\bin>net start mysql  'net' 不是内部或外部命令,也不是可运行的                程序或批处理文件。  

        解决方案
                                           1 尝试更改环境变量为%MYSQL_HOME%\bin;C:\Widows\system32     无效
                                           2 尝试在C盘运行该命令  报net start MySQL 发生系统错误 193。 不是有效的 Win32                               解决方案
                                                                        重新在c盘运行net start mysql(这里切换了盘符C:\Windows\System32>)原因是我的系统环境以前改错了-- 环境变量的系统变量C:\Windows\system32没正确配置 故而需要在系统变量目录下才可调用net

为第一个mysql服务配置系统环境变量


  5登录mysql(确保在E:\> mysql\mysql-8.0.25-winx64\bin   执行)


mysql -uroot -q        

输入上面生成的随机密码   (如果忘记,删除data文件夹回到第2步) 或者在data目录下的.err文件中查找 for root@localhost:

成功进入  mysql>
  6在mysql>下 修改密码 需要加;表示输入完毕该条指令


ALTER USER 'root'@'localhost'IDENTIFIED WITH mysql_native_password BY '123456';  


Query OK, 0 rows affected (0.01 sec)     查询正常,0行受影响(0.01秒)
 

呈上启下

第一个mysql的服务名为MySQL 下面安装第二个mysql服务  需保证1两服务端口号不同  2服务名称不同

二、安装第二个mysql


1解压压缩包到新文件目录


2复制my.ini文件  到解压后目录
    更改原端口号3306为3307
    添加两条配置


        #+设置mysql的安装目录
        basedir=E:\mysql\mysql-8.0.25-win64second
        #+添加数据存储目录
        datadir=E:\mysql\mysql-8.0.25-win64second\data

3初始化MySQL  会生成随机密码for root@localhost: XXXXX   在文件夹中多出一个Data文件 用于放MySQL数据


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

       “--initialize”表示初始化数据库。
        “--user=mysql”表示使用 mysql 用户来运行 MySQL 服务。
        “--console”表示在控制台中输出初始化信息。

4安装MySQL服务 cmd管理员身份切在bin目录下   

mysqld install 第二个mysql服务的名称 --defaults-file="你的复制更改后的ini文件路径\my.ini"

例如:


mysqld install mysql_3307 --defaults-file="E:\install\mysql-8.0.25-win64second\mysql-8.0.21-winx64\my.ini"

解析:该命令分为两部分

1 安装mysql服务 mysqld --install 【服务名称】

 “mysql_3307”是为该服务指定的一个名称或标识符

2 MySQL --defaults-file="E:\install\mysql-8.0.25-win64second\mysql-8.0.21-winx64\my.ini"

根据指定的文件my.ini内容安装服务  特别是basedir,datadir

这里的my.ini文件路径错了 后面有解决
!!这个命令不完全对 但是安装部分和命名服务部分是对的 后面的--defaults-file=E:\install\mysql-8.0.25-win64second\mysql-8.0.21-winx64\my.ini mysql_3307错了 后面有解决方法 



5启用MySQL服务
net start mysql_3307 
    执行E:\mysql\mysql-8.0.25-win64second\bin>net start mysql_3307
mysql_3307 服务正在启动 .
mysql_3307 服务无法启动。

这里无法启动 具体原因是啥?
不是端口冲突:netstat -an  确保第二个MySQL服务使用的端口(如3307)没有被其他服务占用。

原因就是第4步的ini路径错误

解决:

1打开服务窗口 win+R输入

services.msc

查看mysql_3307服务的属性:
        可执行文件路径:E:\mysql\mysql-8.0.25-winx64\bin\mysqld --defaults-file=E:\install\mysql-8.0.25-win64second\mysql-8.0.21-winx64\my.ini mysql_3307

逐步解析这个命令:
part1

        E:\mysql\mysql-8.0.25-winx64\bin\mysqld:
这部分指定了 MySQL 服务器(mysqld)的可执行文件路径。mysqld 是 MySQL 的服务器进程。

part2

        --defaults-file=E:\install\mysql-8.0.25-win64second\mysql-0.21-winx64\my.ini:
指定了 MySQL 服务器启动时应该使用的配置文件(my.ini)的路径  中包含了 MySQL 服务的各种设置,如端口、字符集、存储引擎等。

part3

        mysql_3307:
服务的名称在 Windows 中,每个 MySQL 服务实例都应该有一个唯一的名称

发现:part2    --default这部分。配置文件的地址错了  明显这里的配置文件路径错误

2打开注册表 win+R输入 


regedit

更改错误配置的属性

进入:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysql_3307
找到mysql_3307的ImagePath

右键修改为正确路径
E:\mysql\mysql-8.0.25-winx64\bin\mysqld --defaults-file=E:\mysql\mysql-8.0.25-win64second\my.ini mysql_3307
重写执行:
E:\>net start mysql_3307
mysql_3307 服务正在启动 .
mysql_3307 服务已经启动成功。
!!!这里没有为第二个Mysql服务设置环境变量 也可在不同路径执行启动命令为啥?  因为是基于system的net执行的 这里在不同路径执行的是system命令集而非第二个mysql的命令

6登录
mysql -u root -p

无论是否在当前第二个mysql的bin目录,都可执行mysql命令,此时mysql_3307服务并没有配置系统环境变量
大概是因为第一个MySQL配置了系统环境变量 mysql命令集合已经配置到系统环境变量 该命令集合并不单单对第一个MySQL起作用  
故而得出 配置系统环境变量是配置的命令集合 只要命令集合配置到系统环境 就可基于命令集合调用不同“实现类”

但这样会默认登录第一个mysql 因为默认端口号为第一个mysql的3306


mysql -u root -P 3307 -p

解释:

mysql –u用户名 –p密码 [-h数据库服务器IP地址  -P端口号]  
如果不指定 -h为本机地址 -P为3306


输入刚刚记忆的密码,也存储在err文件下  如果找不到  删除data 重新初始化重写执行一下第3步即可。 可跳过第4步 进入第5步 

附:

err是错误日志 错误日志中发现
X Plugin ready for connections. Bind-address: '::' port: 33060 表明MySQL的X Plugin已经准备好接受连接,绑定的地址是::(IPv6的任意地址),端口是33060。

猜测:第一个mysql的X Plugin可能会冲突

posted on 2025-04-04 20:51  鲟崆  阅读(0)  评论(0)    收藏  举报  来源

导航