MySQL8.0解决“MySQL 服务无法启动。 服务没有报告任何错误。”

TL;NRs

  • 初始化服务时最好使用 mysqld --initialized --console命令;
  • MySQL8.0的配置变量与MySQL5.7不同, [mysqld]下面设置字符集的变量名为 character_set_server
  • 修改密码的命令为 alter user 'root'@'localhost'identified by '密码';

经过

之前装5.7没有什么问题,结果装8.0的时候一直无法启动服务。

MySQL8.0解决“MySQL 服务无法启动。  服务没有报告任何错误。”
由于之前是采用 mysqld --initialized -insecure命令初始化,因此一头雾水。在改为 mysqld --initialized --console命令后,发现出现了很多报错的信息:
MySQL8.0解决“MySQL 服务无法启动。  服务没有报告任何错误。”
红线上面这句是核心,意思是不知道你这个 default-character-set变量是什么。然后对症下药,经过搜索发现MySQL8.0的配置变量与MySQL5.7不同, [mysqld]下面设置字符集的变量名为 character_set_server而非 default_character_set([mysql]下依然为 default_character_set)。
下面那句话的意思是创建的 data文件夹已经没用了,可以删除(重新初始化的时候必须把旧的 data文件夹删除)。所以看上去是3个error,其实是一个error。
在修改过后,MySQL就可以正常启动了。由于使用 mysqld --initialized --console命令,会生出一个随机密码,使用随机密码登录后,需要使用 alter user 'root'@'localhost'identified by '密码';命令修改密码,否则无法使用MySQL。
MySQL8.0解决“MySQL 服务无法启动。  服务没有报告任何错误。”
在修改过密码后,就可以正常使用了。
MySQL8.0解决“MySQL 服务无法启动。  服务没有报告任何错误。”

相关命令

  • mysqld --initialized -insecure:初始化MySQL,并且默认密码为空;
  • mysqld --initialized --console:初始化MySQL;
  • mysqld --install:安装MySQL服务;
  • mysqld -remove:删除MySQL服务;
  • mysql -u 用户名 -p:登录MySQL;
  • alter user 'root'@'localhost'identified by '密码';:修改管理员用户的密码;

配置文件

最后,附上配置文件 my.ini:

CLIENT SECTION
[mysql]
default_character_set=utf8
[client]
port=3306

SERVER SECTION
[mysqld]
port=3306
basedir="D:\mysql"
datadir="D:\mysql\data"
character_set_server=utf8
default-storage-engine=INNODB

Original: https://www.cnblogs.com/CounterX/p/16156455.html
Author: 计数寄存器
Title: MySQL8.0解决“MySQL 服务无法启动。 服务没有报告任何错误。”

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/713939/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球