“Mysql:安装(Windows)”的版本间差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
 (→多版本安装)  | 
				|||
| (未显示同一用户的20个中间版本) | |||
| 第1行: | 第1行: | ||
[[category:MySQL]]  | [[category:MySQL]]  | ||
[[category:  | [[category:安装(Windows)]]  | ||
== 下载安装包 ==  | == 下载安装包 ==  | ||
一般选择的是社区版(MySQL Community Server)的GA版本(正式发布版本、生产版本),链接 [https://dev.mysql.com/downloads/mysql/ MySQL:Download MySQL Community Server]。  | |||
: [[File:下载MySQL安装文件.jpg|600px]]  | |||
安装文件类型:  | 安装文件类型:  | ||
# “mysql-xxx-win64.zip”:编译好的 windows 64 位 MySQL,文件解压缩后即可使用(需要手工配置)。  | # “mysql-xxx-win64.zip”:编译好的 windows 64 位 MySQL,文件解压缩后即可使用(需要手工配置)。  | ||
| 第8行: | 第12行: | ||
# “mysql-xxx.zip”:windows源文件,需要编译。  | # “mysql-xxx.zip”:windows源文件,需要编译。  | ||
== 安装 MySQL==  | |||
 以 mysql-5.7.33-winx64.zip 为例。  | |||
安装步骤:  | |||
# 解压 MySQL 文件到目的目录;(如“D:\Program Files\mysql-5.7.33-winx64”)  | |||
# 配置环境变量:  | # 配置环境变量:  | ||
#: <syntaxhighlight lang="bash" highlight="">  | #: <syntaxhighlight lang="bash" highlight="">  | ||
| 第25行: | 第25行: | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
# 新建配置文件“'''my.ini'''”:  | # 新建配置文件“'''my.ini'''”:  | ||
#: <syntaxhighlight lang="  | #: <syntaxhighlight lang="yaml">  | ||
[mysql]     | [mysql]     | ||
# 设置 mysql 客户端默认字符集     | # 设置 mysql 客户端默认字符集     | ||
| 第31行: | 第31行: | ||
[mysqld]     | [mysqld]     | ||
#设置 3306 端口     | # 设置 3306 端口     | ||
port = 3306     | port = 3306     | ||
| 第50行: | 第50行: | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
#* 用于配置MySQL的基础设置,如字符集、引擎、端口、安装目录、数据目录等。  | #* 用于配置MySQL的基础设置,如字符集、引擎、端口、安装目录、数据目录等。  | ||
#   | # 初始化数据库:  | ||
#: <syntaxhighlight lang="xml">  | #: <syntaxhighlight lang="xml">  | ||
# 初始化命令  | # 初始化命令  | ||
mysqld --initialize-insecure --user=mysql  | mysqld --initialize-insecure --user=mysql  | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
#:   | #: MySQL目录中多出一个“data”文件夹,包含了系统的默认数据库;  | ||
#  | #* 如果使用“--initialize”还会生了一个随机的初始 root 密码。  | ||
#   | # 安装服务:  | ||
#: <syntaxhighlight lang="xml">  | #: <syntaxhighlight lang="xml">  | ||
# 将服务器安装为 Windows 服务,并设置服务为“自动启动”  | # 将服务器安装为 Windows 服务,并设置服务为“自动启动”  | ||
| 第75行: | 第75行: | ||
#: [[File:查看MySQL版本.png|600px]]  | #: [[File:查看MySQL版本.png|600px]]  | ||
===   | === 关于“初始化数据库” ===  | ||
安装 MySQL   | 安装 MySQL 之后,初始化数据库,包括 mysql 系统数据库中的表:  | ||
<syntaxhighlight lang="bash" highlight="">  | <syntaxhighlight lang="bash" highlight="">  | ||
mysqld --initialize --user=mysql [--console]  | mysqld --initialize --user=mysql [--console]  | ||
| 第82行: | 第82行: | ||
mysqld --initialize-insecure --user=mysql [--console]  | mysqld --initialize-insecure --user=mysql [--console]  | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
# “--user=mysql”:以“mysql”身份运行该命令。  | |||
# “--console”:选项将消息定向到 Windows 控制台;否则将写入其标准错误输出:“错误日志”(data目录中后缀为“.err”的文件)。  | |||
*  | # “--initialize”:进行“默认安全”的初始化,即:包括'''生成随机的初始root密码'''(可在错误日志中找到)。  | ||
#* 以 root 连接到服务器时,“'''<syntaxhighlight lang="xml" inline>mysql -u root -p</syntaxhighlight>'''”需要生成的临时密码;  | |||
#* 在这种情况下,密码被标记为'''已过期''',您将需要选择一个新密码;  | |||
# “--initialize-insecure”:执行初始化,但'''不会生成root密码'''。  | |||
#* 以 root 连接到服务器时,不使用密码登录“'''<syntaxhighlight lang="xml" inline>mysql -u root --skip-password</syntaxhighlight>'''”;  | |||
#* 这是不安全的;假定您在将服务器投入生产使用之前会及时为帐户分配密码;  | |||
<pre>  | |||
对于某些 MySQL 安装方法,数据目录初始化是自动的。(如在 Windows 上通过msi文件的自动化安装过程)  | |||
对于其他安装方法,必须手动初始化数据目录。(包括在 Unix 和类似 Unix 的系统上从通用二进制发行版和源代码发行版进行安装,以及在 Windows 上从 ZIP Archive 软件包进行安装)  | |||
</pre>  | |||
初始化期间的服务器操作:'''服务器检查数据目录是否存在''':  | |||
# 如果不存在数据目录,则服务器将创建它。  | # 如果不存在数据目录,则服务器将创建它。  | ||
# 如果数据目录存在但不为空(即它包含文件或子目录),则服务器在生成错误消息后退出:  | # 如果数据目录存在但不为空(即它包含文件或子目录),则服务器在生成错误消息后退出:  | ||
| 第94行: | 第105行: | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
#* 在这种情况下,请删除或重命名数据目录,然后重试。  | #* 在这种情况下,请删除或重命名数据目录,然后重试。  | ||
* 首次安装 MySQL 之后才需要进行数据目录初始化;但,初始化数据目录的命令不会覆盖任何现有的 mysql 数据库表,因此在任何情况下都可以安全运行。  | |||
== 多版本安装 ==  | |||
 多版本共存时:  | |||
 1、需要配置不同的环境变量。  | |||
 2、配置文件中:需要指定不同端口“port”避免冲突;  | |||
 3、安装时,安装命令需要指定配置文件。  | |||
步骤:(以 5.7.35、8.0.27 为例)  | |||
# 解压 MySQL 文件到目的目录;  | |||
# 新建配置文件:  | |||
#: 分别在两个 MySQL 目录中新建“my.ini”:  | |||
#: <syntaxhighlight lang="xml" highlight="">  | |||
[mysqld]  | |||
# 设置端口  | |||
port=3306  | |||
# 设置 mysql 的安装目录  | |||
basedir=D:\Program Files\MySQL\mysql-5.7.35  | |||
# 设置 mysql 数据库的数据的存放目录  | |||
datadir=D:\Program Files\MySQL\mysql-5.7.35\data   | |||
# 允许最大连接数  | |||
max_connections=200  | |||
# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集  | |||
character-set-server=utf8  | |||
# 创建新表时将使用的默认存储引擎  | |||
default-storage-engine=INNODB  | |||
[mysql]  | |||
# 设置 mysql 客户端默认字符集  | |||
default-character-set=utf8  | |||
[client]  | |||
# 设置mysql客户端连接服务端时默认使用的端口  | |||
port=3306  | |||
default-character-set=utf8  | |||
</syntaxhighlight>  | |||
#: <syntaxhighlight lang="xml" highlight="">  | |||
[mysqld]  | |||
# 设置端口  | |||
port=3307  | |||
# 设置mysql的安装目录  | |||
basedir=D:\Program Files\MySQL\mysql-8.0.27  | |||
# 设置mysql数据库的数据的存放目录  | |||
datadir=D:\Program Files\MySQL\mysql-8.0.27\data  | |||
# 允许最大连接数  | |||
max_connections=200  | |||
# 允许连接失败的次数  | |||
max_connect_errors=10  | |||
# 服务端使用的字符集默认为UTF8  | |||
character-set-server=utf8mb4  | |||
# 创建新表时将使用的默认存储引擎  | |||
default-storage-engine=INNODB  | |||
# 认证插件:默认使用“caching_sha2_password”,可选“mysql_native_password”  | |||
default_authentication_plugin=caching_sha2_password  | |||
<  | [mysql]  | ||
# 设置mysql客户端默认字符集  | |||
default-character-set=utf8mb4  | |||
[client]  | |||
# 设置mysql客户端连接服务端时默认使用的端口  | |||
port=3307  | |||
default-character-set=utf8mb4  | |||
</syntaxhighlight>  | |||
#* 需要设置不同的端口!  | |||
#* MYSQL 8+ 字符编码要求使用“utf8mb4”,否则在初始化的时候会报一个警告;  | |||
#* MYSQL 8+ 默认的认证插件为“caching_sha2_password”;MYSQL 5.7 默认使用“mysql_native_password”;  | |||
#* “server-id”用于不同服务器的主从复制,这里不需要;  | |||
# 初始化数据库:  | |||
#: <syntaxhighlight lang="bash" highlight="">  | |||
cd D:\Program Files\MySQL\mysql-5.7.35\bin  | |||
mysqld --initialize --user=mysql --console  | |||
cd D:\Program Files\MySQL\mysql-8.0.27\bin  | |||
mysqld --initialize --user=mysql --console   | |||
</syntaxhighlight>  | |||
#* 完成之后,可以通过“mysqld --version”确认是否成功;  | |||
#* 安装第二个时,可能遇到错误:<big>'''<code>[ERROR]—initialize specified but the data directory has files in it . Aborting .</code>'''</big>  | |||
#*: [[File:MySQL安装多版本错误:--initialize specified but the data directory has files int it.png|600px]]  | |||
#*: 原因:由于已为第一个 MySQL 配置了环境变量,所以虽然定位到了第二个 bin 目录,但使用的还是第一个 bin(环境变量中先读取的那个)  ——【这他妈是 Windows 的 bug 吧】  | |||
#*: 解决:<big>'''先删除环境变量,待初始化、安装服务之后,再配置环境变量。'''</big>  ——【由于使用的不是定位的目录,还可能引起许多问题——由于不同版本 MySQL 引起的问题】  | |||
# 安装服务:  | |||
#: <syntaxhighlight lang="bash" highlight="">  | |||
cd D:\Program Files\MySQL\mysql-5.7.35\bin  | |||
mysqld –install MySQL57  | |||
cd D:\Program Files\MySQL\mysql-8.0.27\bin  | |||
mysqld –install MySQL80  | |||
</syntaxhighlight>  | |||
#* 需要设置不同的服务名称!  | |||
# 配置环境变量:  | |||
#: <syntaxhighlight lang="bash" highlight="">  | |||
MYSQL_HOME57:D:\Program Files\MySQL\mysql-5.7.35  | |||
MYSQL_HOME80:D:\Program Files\MySQL\mysql-8.0.27  | |||
path 添加:%MYSQL_HOME57%\bin;%MYSQL_HOME80%\bin;  | |||
</syntaxhighlight>  | |||
# '''修改注册表''':【!!!】  | |||
#: 注册表“计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”下找到安装的服务,将“'''ImagePath'''”设置为正确的路径,如:  | |||
#: <syntaxhighlight lang="bash" highlight="">  | |||
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL57  | |||
ImagePath:"D:\Program Files\MySQL\mysql-5.7.35\bin\mysqld" MySQL57  | |||
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL57  | |||
ImagePath:"D:\Program Files\MySQL\mysql-8.0.27\bin\mysqld" MySQL80  | |||
</syntaxhighlight>  | |||
#* 因为安装了两个版本的 MySQL,所以后一个的执行文件被指向了前一个版本目录中的内容,需要修改!!!  | |||
# '''开放端口''':【!!!】  | |||
#: 在防火墙的“高级设置”中添加“'''入站规则'''”,指定需要的端口。  | |||
#* 规则可能没生效,可能需要重启。【坑】  | |||
::: [[File:MySQL多版本安装.png|800px]]  | |||
=== 指定“--defaults-file” ===  | |||
如果安装过程中要指定“--defaults-file”,则必须在前面:  | |||
: <syntaxhighlight lang="bash" highlight="">  | |||
应该是:  | |||
mysqld --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini" --initialize --user=mysql --console  | |||
而非:  | |||
mysqld --initialize --user=mysql --console --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini"  | |||
</syntaxhighlight>  | |||
示例:  | |||
: <syntaxhighlight lang="bash" highlight="">  | |||
cd D:\Program Files\MySQL\mysql-5.7.35\bin  | |||
mysqld --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini" --initialize --user=mysql --console  | |||
mysqld –install MySQL57 --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini"  | |||
cd D:\Program Files\MySQL\mysql-8.0.27\bin  | |||
mysqld --defaults-file="D:\Program Files\MySQL\mysql-8.0.27\my.ini" --initialize --user=mysql --console   | |||
mysqld –install MySQL80 --defaults-file="D:\Program Files\MySQL\mysql-8.0.27\my.ini"  | |||
</syntaxhighlight>  | |||
=== 验证安装 ===  | |||
如果服务均能启动,则说明安装成功。  | |||
如果有服务不能启动:(以下两个作用一样)  | |||
# 在注册表“计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”下找到安装的服务,在“ImagePath”可以确认是不是正确;  | |||
# 在服务页面找到安装的服务项,右键页面可以看到服务的安装信息是否正确;  | |||
=== “本地计算机上的 MySQLXX 服务启动后停止。某些服务在未由其他程序或服务使用时将自动停止” ===  | |||
如上安装了两个MySQL版本之后,发现始终只能启动一个。  | |||
: 一开始以为是因为服务的执行文件指向的是同一个目录下的内容,通过注册表项进行了更改,但是问题依旧;  | |||
: 然后发现,其实是只能使用“3306”一个接口,无论哪个版本设置3306都可以启动,但是其他接口就不行,所以在防火墙打开了 3306-3309 的接口,但是问题依旧。  | |||
【解决】:坑比的系统防火墙规则没生效,重启了一遍才生效,一切正常了。  | |||
所以步骤是:  | |||
# 修改注册表;  | |||
# 开放端口;  | |||
# 判断端口是否生效,否则重启试试。  | |||
== 卸载MySQL ==  | == 卸载MySQL ==  | ||
# 移除 MySQL 服务:  | |||
#: <syntaxhighlight lang="bash" highlight="">  | |||
<syntaxhighlight lang="  | |||
mysqld -remove  | mysqld -remove  | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
# 删除环境变量;  | |||
# 删除 MySQL 目录;  | |||
#* 此外,在“C:\ProgramData”、“C:\Program Files (x86)”、“C:\Program Files”等位置可能还有 MySQL 的文件夹;  | |||
== 进入 MySQL ==  | == 进入 MySQL ==  | ||
2023年12月6日 (三) 13:02的最新版本
下载安装包
一般选择的是社区版(MySQL Community Server)的GA版本(正式发布版本、生产版本),链接 MySQL:Download MySQL Community Server。
安装文件类型:
- “mysql-xxx-win64.zip”:编译好的 windows 64 位 MySQL,文件解压缩后即可使用(需要手工配置)。
 - “mysql-xxx-win64.msi”:windows 安装包,双击执行根据向导安装即可。
 - “mysql-xxx.zip”:windows源文件,需要编译。
 
安装 MySQL
以 mysql-5.7.33-winx64.zip 为例。
安装步骤:
- 解压 MySQL 文件到目的目录;(如“D:\Program Files\mysql-5.7.33-winx64”)
 - 配置环境变量:
MYSQL_HOME:D:\Program Files\mysql-5.7.33-winx64; path 添加:%MYSQL_HOME%\bin;
 - 新建配置文件“my.ini”:
[mysql] # 设置 mysql 客户端默认字符集 default-character-set=utf8 [mysqld] # 设置 3306 端口 port = 3306 # 设置 mysql 的安装目录 basedir=D:\Program Files\mysql-5.7.23-winx64 # 设置 mysql 数据库的数据的存放目录 datadir=D:\Program Files\mysql-5.7.23-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为 8 比特编码的 latin1 字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
- 用于配置MySQL的基础设置,如字符集、引擎、端口、安装目录、数据目录等。
 
 - 初始化数据库:
# 初始化命令 mysqld --initialize-insecure --user=mysql
- MySQL目录中多出一个“data”文件夹,包含了系统的默认数据库;
 
- 如果使用“--initialize”还会生了一个随机的初始 root 密码。
 
 - 安装服务:
# 将服务器安装为 Windows 服务,并设置服务为“自动启动” mysqld -install [service_name] # 将服务器安装为 Windows 服务,并设置服务为“手动启动” mysqld --install-manual [service_name]
 - 验证安装:
 
关于“初始化数据库”
安装 MySQL 之后,初始化数据库,包括 mysql 系统数据库中的表:
mysqld --initialize --user=mysql [--console]
mysqld --initialize-insecure --user=mysql [--console]
- “--user=mysql”:以“mysql”身份运行该命令。
 - “--console”:选项将消息定向到 Windows 控制台;否则将写入其标准错误输出:“错误日志”(data目录中后缀为“.err”的文件)。
 - “--initialize”:进行“默认安全”的初始化,即:包括生成随机的初始root密码(可在错误日志中找到)。
- 以 root 连接到服务器时,“
mysql -u root -p”需要生成的临时密码; - 在这种情况下,密码被标记为已过期,您将需要选择一个新密码;
 
 - 以 root 连接到服务器时,“
 - “--initialize-insecure”:执行初始化,但不会生成root密码。
- 以 root 连接到服务器时,不使用密码登录“
mysql -u root --skip-password”; - 这是不安全的;假定您在将服务器投入生产使用之前会及时为帐户分配密码;
 
 - 以 root 连接到服务器时,不使用密码登录“
 
对于某些 MySQL 安装方法,数据目录初始化是自动的。(如在 Windows 上通过msi文件的自动化安装过程) 对于其他安装方法,必须手动初始化数据目录。(包括在 Unix 和类似 Unix 的系统上从通用二进制发行版和源代码发行版进行安装,以及在 Windows 上从 ZIP Archive 软件包进行安装)
初始化期间的服务器操作:服务器检查数据目录是否存在:
- 如果不存在数据目录,则服务器将创建它。
 - 如果数据目录存在但不为空(即它包含文件或子目录),则服务器在生成错误消息后退出:
[ERROR] --initialize specified but the data directory exists. Aborting.
- 在这种情况下,请删除或重命名数据目录,然后重试。
 
 
- 首次安装 MySQL 之后才需要进行数据目录初始化;但,初始化数据目录的命令不会覆盖任何现有的 mysql 数据库表,因此在任何情况下都可以安全运行。
 
多版本安装
多版本共存时: 1、需要配置不同的环境变量。 2、配置文件中:需要指定不同端口“port”避免冲突; 3、安装时,安装命令需要指定配置文件。
步骤:(以 5.7.35、8.0.27 为例)
- 解压 MySQL 文件到目的目录;
 - 新建配置文件:
- 分别在两个 MySQL 目录中新建“my.ini”:
 [mysqld] # 设置端口 port=3306 # 设置 mysql 的安装目录 basedir=D:\Program Files\MySQL\mysql-5.7.35 # 设置 mysql 数据库的数据的存放目录 datadir=D:\Program Files\MySQL\mysql-5.7.35\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为 8 比特编码的 latin1 字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB [mysql] # 设置 mysql 客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8
[mysqld] # 设置端口 port=3307 # 设置mysql的安装目录 basedir=D:\Program Files\MySQL\mysql-8.0.27 # 设置mysql数据库的数据的存放目录 datadir=D:\Program Files\MySQL\mysql-8.0.27\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 认证插件:默认使用“caching_sha2_password”,可选“mysql_native_password” default_authentication_plugin=caching_sha2_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3307 default-character-set=utf8mb4
- 需要设置不同的端口!
 - MYSQL 8+ 字符编码要求使用“utf8mb4”,否则在初始化的时候会报一个警告;
 - MYSQL 8+ 默认的认证插件为“caching_sha2_password”;MYSQL 5.7 默认使用“mysql_native_password”;
 - “server-id”用于不同服务器的主从复制,这里不需要;
 
 - 初始化数据库:
cd D:\Program Files\MySQL\mysql-5.7.35\bin mysqld --initialize --user=mysql --console cd D:\Program Files\MySQL\mysql-8.0.27\bin mysqld --initialize --user=mysql --console
- 完成之后,可以通过“mysqld --version”确认是否成功;
 - 安装第二个时,可能遇到错误:
[ERROR]—initialize specified but the data directory has files in it . Aborting . 
 - 安装服务:
cd D:\Program Files\MySQL\mysql-5.7.35\bin mysqld –install MySQL57 cd D:\Program Files\MySQL\mysql-8.0.27\bin mysqld –install MySQL80
- 需要设置不同的服务名称!
 
 - 配置环境变量:
MYSQL_HOME57:D:\Program Files\MySQL\mysql-5.7.35 MYSQL_HOME80:D:\Program Files\MySQL\mysql-8.0.27 path 添加:%MYSQL_HOME57%\bin;%MYSQL_HOME80%\bin;
 - 修改注册表:【!!!】
- 注册表“计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”下找到安装的服务,将“ImagePath”设置为正确的路径,如:
 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL57 ImagePath:"D:\Program Files\MySQL\mysql-5.7.35\bin\mysqld" MySQL57 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL57 ImagePath:"D:\Program Files\MySQL\mysql-8.0.27\bin\mysqld" MySQL80
- 因为安装了两个版本的 MySQL,所以后一个的执行文件被指向了前一个版本目录中的内容,需要修改!!!
 
 - 开放端口:【!!!】
- 在防火墙的“高级设置”中添加“入站规则”,指定需要的端口。
 
- 规则可能没生效,可能需要重启。【坑】
 
 
指定“--defaults-file”
如果安装过程中要指定“--defaults-file”,则必须在前面:
应该是: mysqld --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini" --initialize --user=mysql --console 而非: mysqld --initialize --user=mysql --console --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini"
示例:
cd D:\Program Files\MySQL\mysql-5.7.35\bin mysqld --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini" --initialize --user=mysql --console mysqld –install MySQL57 --defaults-file="D:\Program Files\MySQL\mysql-5.7.35\my.ini" cd D:\Program Files\MySQL\mysql-8.0.27\bin mysqld --defaults-file="D:\Program Files\MySQL\mysql-8.0.27\my.ini" --initialize --user=mysql --console mysqld –install MySQL80 --defaults-file="D:\Program Files\MySQL\mysql-8.0.27\my.ini"
验证安装
如果服务均能启动,则说明安装成功。
如果有服务不能启动:(以下两个作用一样)
- 在注册表“计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\”下找到安装的服务,在“ImagePath”可以确认是不是正确;
 - 在服务页面找到安装的服务项,右键页面可以看到服务的安装信息是否正确;
 
“本地计算机上的 MySQLXX 服务启动后停止。某些服务在未由其他程序或服务使用时将自动停止”
如上安装了两个MySQL版本之后,发现始终只能启动一个。
- 一开始以为是因为服务的执行文件指向的是同一个目录下的内容,通过注册表项进行了更改,但是问题依旧;
 - 然后发现,其实是只能使用“3306”一个接口,无论哪个版本设置3306都可以启动,但是其他接口就不行,所以在防火墙打开了 3306-3309 的接口,但是问题依旧。
 
【解决】:坑比的系统防火墙规则没生效,重启了一遍才生效,一切正常了。
所以步骤是:
- 修改注册表;
 - 开放端口;
 - 判断端口是否生效,否则重启试试。
 
卸载MySQL
- 移除 MySQL 服务:
mysqld -remove
 - 删除环境变量;
 - 删除 MySQL 目录;
- 此外,在“C:\ProgramData”、“C:\Program Files (x86)”、“C:\Program Files”等位置可能还有 MySQL 的文件夹;
 
 
进入 MySQL
- 启动服务:使用Windows的cmd执行命令,用于手动启动服务:
net start mysql
 - 登录:
mysql -u root -p
 - 设置密码:
use mysql; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
 - 操作数据库:如查看存在的数据库等:
show databases;
 - 退出和停止:
quit // 退出 net stop mysql // 停止服务
 
附:安装 MySQL(mysql-installer-community-5.7.33.0.msi)
使用Windows Installer安装MySQL顺序而行,没有特别需要注意的地方:
