MySQL安装排错

MySQL安装排错

在Windows上使用了msi安装MySQL2.0的版本,结果出了问题。主要报错原因是Data文件夹以及8.0版本的MySQL配置程序自动创建了一个MySQL服务引起的。记录下安装的步骤及排错过程。

1. 运行安装程序

打开mysql-installer-community-8.0.16.0.msi,默认安装。

在这一步中程序会自动生成一个服务并让你配置,我当时并没有意识到这是一个服务,所以后来又重复了创建新的服务的步骤。

2. 配置环境,创建my.ini文件。

根据教程,在环境变量中添加MySQL Server 8.0目录,并在此目录下创建一个my.ini文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0 # 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
# 设置mysql数据库的数据的存放目录
datadir=C:\\Program Files\\MySQL\\MySQL Server 8.0\\Data # 此处同上
# 允许最大连接数
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=3306
default-character-set=utf8

不要自己创建Data文件夹!!!

不要自己创建Data文件夹!!!

不要自己创建Data文件夹!!!

3. 启动服务

控制台输入mysqld -install与mysqld --initialize,启动服务命令net start mysql,报错:

1
2
3
4
5
6
MySQL 服务正在启动 ..
MySQL 服务无法启动。

服务没有报告任何错误。

请键入 NET HELPMSG 3534 以获得更多的帮助。

查看记录,输入mysqld -console,获得以下信息:

1
2
3
4
5
6
7
8
9
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --console
2019-05-11T04:20:13.041783Z 0 [System] [MY-010116] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe (mysqld 8.0.16) starting as process 19832
2019-05-11T04:20:13.044980Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2019-05-11T04:20:15.076636Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2019-05-11T04:20:15.078181Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址/端 口)只允许使用一次。

2019-05-11T04:20:15.078189Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?
2019-05-11T04:20:15.094148Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-05-11T04:20:16.309270Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.16) MySQL Community Server - GPL.

很明显出错原因就是服务中现在有了配置产生的网络服务mysql80与自己创建的本地服务mysql共用同一个端口3306,于是删除网络服务mysql80:

1
2
C:\Program Files\MySQL\MySQL Server 8.0\bin>sc delete mysql80
[SC] DeleteService 成功

删除后在管理->服务中仍然看到了正在运行的mysql80,停止它,重新运行net start mysql,运行成功,mysql80消失不见。

此外,如果出现报错:

1
2
3
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
Enter password: ************
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

其原因是没有start服务.

启动服务后的操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.16

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
Query OK, 0 rows affected (0.01 sec)

到此,即完成了安装与配置。