在官网下载的社区版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 字段)