超简单Win10中装多个不同版本MySQL数据库服务(当前5.7和8.0.26)


文章目录

  • 一、MySQL8.0安装包下载?
  • 1.官网
  • 2.百度云:
  • 二、安装步骤
  • 1.解压到想要安装的位置
  • 2.配置文件my.ini
  • 3.安装MySQL8.0.26服务
  • 1首先:以管理员权限运行cmd并转到解压目录
  • 2:执行以下cmd命令(注意看图)
  • 1.安装mysql服务
  • 2.mysql初始化
  • 3.启动mysql服务
  • 4.修改新的mysql的配置
  • 1.修改密码
  • 2.给root授权通过ip访问(远程)
  • 总结
  • 1.不想看文字的两张图总结:
  • 2.将Host设置为通配符%原因
  • 3.当服务无法启动时
  • 4.当修改密码语句异常



一、MySQL8.0安装包下载?

1.官网

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

下载以下版本:

MySQL 工程上 常用的版本 mysql一般用哪个版本_MySQL 工程上 常用的版本

2.百度云:

链接:https://pan.baidu.com/s/198TCAMFWc6h3F7oTHYvlXA
提取码:8ipr

二、安装步骤

1.解压到想要安装的位置

解压如下:文件夹名我这边自己改了(不用改

自定义路径:避免中文路径或者特殊字符

MySQL 工程上 常用的版本 mysql一般用哪个版本_mysql_02

2.配置文件my.ini

请先将my.ini配置文件放入bin目录下
代码如下:

[mysqld]
# 设置3306端口
port=3307
# 设置mysql的安装目录(压缩包解压路径)
basedir=D:\Programming\Install\Database\MySQL\mysql-8.0.26-winx64-config
# 设置mysql数据库的数据的存放目录
datadir=D:\Programming\Install\Database\MySQL\mysql-8.0.26-winx64-config\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4

注意:请注意端口是否被占用,这里设置port=3307

3.安装MySQL8.0.26服务

1首先:以管理员权限运行cmd并转到解压目录

执行到解压的文件夹目录(cmd命令示例):

如我要转到D盘的D:\Programming\Install\Database\MySQL\mysql-8.0.26-winx64-config

则要先输入盘符:D:

然后转到相应的D盘

然后再按上面的方法进行跳转

cd D:\Programming\Install\Database\MySQL\mysql-8.0.26-winx64-config

MySQL 工程上 常用的版本 mysql一般用哪个版本_配置文件_03

2:执行以下cmd命令(注意看图)

1.安装mysql服务

——这里服务命名为MySQL8026 ,以便区分。安装指定my.ini文件mysqld服务

bin\mysqld install MySQL8026 --defaults-file="D:\Programming\Install\Database\MySQL\mysql-8.0.26-winx64-config\my.ini"
2.mysql初始化
bin\mysqld --initialize --console

执行完成以后,输出内容中会有mysql初始默认密码,复制保存,后面会用到。

3.启动mysql服务
net start MySQL8026
4.修改新的mysql的配置
1.修改密码

注意:当前mysql的bin目录下执行不然会报错如下(无法分辨是在登录哪一个mysql):

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

执行:

bin\mysql -u root -p       #执行登录
#执行修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'CheerOn';
Query OK, 0 rows affected (0.01 sec)
2.给root授权通过ip访问(远程)

将Host设置为通配符%(看需要设置

#Host设置了“%”后便可以允许远程访问
update mysql.user set host='%' where user='root';
#Host修改完成后记得执行flush privileges使配置立即生效
flush privileges;

MySQL 工程上 常用的版本 mysql一般用哪个版本_MySQL 工程上 常用的版本_04


MySQL 工程上 常用的版本 mysql一般用哪个版本_配置文件_05

如果哪一步做错了导致最终失败了不想去改,以管理员身份运行命令提示符删除服务(慎用,这是直接删除的),然后输入sc delete mysql
这里的mysql是你服务中的mysql名(比如是MySQL8026 ,或者其他)。


总结

1.不想看文字的两张图总结:

先将my.ini配置文件放入bin目录下(上面有,路径之类改为解压包位置)
报错点大致三个原因:
1.my.ini配置文件
2.配置文件路径中的data文件夹已存在
3.安装命令
所有执行命令(cmd管理员身份):

#1.安装指定配置文件的mysqld服务
bin\mysqld install MySQL8026 --defaults-file="D:\Programming\Install\Database\MySQL\mysql-8.0.26-winx64-config\my.ini"
#2.服务初始化
bin\mysqld --initialize --console
#3.启动数据库服务
net start MySQL8026
#4.登录
bin\mysql -u root -p
#5.修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'CheerOn';
#6.给root授权通过ip访问(远程)
#Host设置了“%”后便可以允许远程访问
update mysql.user set host='%' where user='root';
#Host修改完成后记得执行flush privileges使配置立即生效
flush privileges;

如下图:

MySQL 工程上 常用的版本 mysql一般用哪个版本_MySQL 工程上 常用的版本_06


MySQL 工程上 常用的版本 mysql一般用哪个版本_database_07


完工!!!

2.将Host设置为通配符%原因

Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;
Host设置了“%”后便可以允许远程访问。
5.Host修改完成后记得执行flush privileges使配置立即生效

3.当服务无法启动时

请检查安装时的执行语句是否正确(检查my.ini配置文件是否正确、端口是否被占用)

#1.安装指定配置文件的mysqld服务
bin\mysqld install MySQL8026 --defaults-file="D:\Programming\Install\Database\MySQL\mysql-8.0.26-winx64-config\my.ini"

或者去将原来可以的mysql服务可执行文件路径复制,修改放到新的服务上

MySQL 工程上 常用的版本 mysql一般用哪个版本_MySQL 工程上 常用的版本_08


如果找不到原因或者不想找,直接删除服务重来(cmd管理员)

删除服务(慎用,这是直接删除的),输入sc delete mysql

这里的mysql是你服务中的mysql名(比如是MySQL8026 ,或者其他)。

4.当修改密码语句异常

#查看当前用户使用的密码验证插件
show variables like '%auth%';
#确定当前使用插件再针对性的使用修改密码的语句

#查看支持的密码验证插件
show plugins;