在官网下载的社区版zip包,后来发现安装MySQL服务无法启动但是服务并没有报告任何错误,就如下图
后来发现是/bin目录下没有配置过my.ini文件,而它本身目录下是没有这个文件的,只好手动自己建一个,文件内容如下
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql\mysql-8.0.13-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-8.0.13-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
上图中你所要修改的两个地方就是basedir和datadir,其中basedir是设置mysql的安装目录,datadir是设置mysql数据库的数据存放的位置,而此时你会发现在mysql-8.0.13-winx64这个目录下同样是没有data目录的,此时我们使用命令创建这个data文件夹
mysqld
--initialize-insecure
然后再开启mysql
net start mysql
此时mysql启动成功
然后就出现了很尴尬的一幕,喵喵喵?啥玩意儿啊,为啥要我输密码啊。我们先进入服务暂停一下mysql
输入命令跳过授权mysqld -defaults-file="D:\mysql\mysql-8.0.13-winx64\bin\my.ini" -console -skip-grant-tables,其中-defaultts-file的地址就是刚刚咱们创建的my.ini的目录,重新以管理员方式打开cmd,记得开启MYSQL哦,输入mysql -u root-p登陆,遇到输入密码时直接回车。
依次输入use mysql
update user set authentication_string=password(“newpassword“) where user=”root”;
flush privileges;记得一定要带上“;”,不然它会一直等待输入,此时出现报错
结果发现是语法错误。。。。。
update mysql.user set authentication_string="12345" where user=”root” ;
重置 root 用户的密码(5.7 之前为 password 字段)