由于项目需要,要在本地做一个数据库,于是从官网下载一个MYSQL并按照指导意见安装。
下载过程无需赘述,可以参考博主“放飞的回忆”,原文地址:https://www.cnblogs.com/ziyoublog/p/9722849.html。
我下载的版本是Community模块下的MySQL Community Server,mysql-5.7.27-winx64,根据说明,该版本的mysql只需要解压后正确配置数据库环境变量即可使用。但是按照上文博主的说明,启动数据时出现下列报错。
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>NET HELPMSG 3534
服务没有报告任何错误。
最蛋疼的是日志中竟然只有一条服务没有报告任何错误。
WTF,这只能考百度了,查了一下,是自己的ini文件配置的问题。官网下载的这个版本包打开后并没有default.ini的配置文件,需要手动添加任意名称的ini包,比如我的就在D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64目录下,就在该目录下直接创建一个xx.ini,同时请创建一个空的data目录。该目录会在初始化执行后生成一系列的配置文件。
xx.ini的内容主要是mysql的两个路径和服务端口的配置
以我的安装路径举例,该文件内容为
[mysqld]
basedir = D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64
datadir = D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\data
port = 3306
完成了配置之后,请务必确认当前的mysql服务状态,在任务管理器中检查是否上次未启动成功的服务还有进程残留,请杀掉mysql进程后进行如下几个操作
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>mysqld --remove
Service successfully removed.
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>mysqld --install
Service successfully installed.
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>mysqld --initialize --console
2019-08-17T00:38:30.769604Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is
deprecated. Please use --explicit_defaults_for_timestamp server option (see doc
umentation for more details).
2019-08-17T00:38:31.643204Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-08-17T00:38:31.955204Z 0 [Warning] InnoDB: Creating foreign key constraint
system tables.
2019-08-17T00:38:32.064404Z 0 [Warning] No existing UUID has been found, so we a
ssume that this is the first time that this server has been started. Generating
a new UUID: 56c80ed3-c087-11e9-bee7-e454e89def84.
2019-08-17T00:38:32.095604Z 0 [Warning] Gtid table is not ready to be used. Tabl
e 'mysql.gtid_executed' cannot be opened.
2019-08-17T00:38:32.111204Z 1 [Note] A temporary password is generated for root@
localhost: p+qy7rwBEwol
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
注意上面日志的流程,mysqld --remove是删除之前安装的信息,确保安装完整。
mysqld --install是安装过程,没什么可说的。
mysqld --initialize --console是将初始化信息同步输出到控制台,很多安装指导文档都没有–console参数,如果不加该参数,你就无法找到初始化数据库的密码。按照一般的指导文档,第一次安装mysql进行链接的时候是不需要密码的,但是我在实测的时候发现没有初始密码是无法连接的,所以该步骤建议将信息输出,上面的初始密码为p+qy7rwBEwol。
此过程中还要注意,如果在init之前data目录下有文件残余,则会出现3523的错误信息
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>net start mysql
MySQL 服务正在启动 ...................
MySQL 服务无法启动。
请键入 NET HELPMSG 3523 以获得更多的帮助。
出现上述问题的时候,请先清除掉data目录下的内容重新初始化即可。
使用初始化过程中生成的密码可以直接联机数据库,进入数据库后再修改密码即可,修改密码参考下面的过程
D:\mysql-5.7.27-winx64\mysql-5.7.27-winx64\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27
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 BY '123'
-> ;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
之后就可以愉快地使用各种IDE工具来做数据了。