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的時候一直無法啟動服務。
image
由於之前是采用mysqld --initialized -insecure命令初始化,因此一頭霧水。在改為mysqld --initialized --console命令后,發現出現了很多報錯的信息:
image
紅線上面這句是核心,意思是不知道你這個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。
image
在修改過密碼后,就可以正常使用了。
image

相關命令

  • 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM