TL;NRs 初始化服務時最好使用mysqld --initialized --console命令; MySQL8.0的配置變數與MySQL5.7不同,[mysqld]下麵設置字元集的變數名為character_set_server; 修改密碼的命令為alter user 'root'@'local ...
TL;NRs
- 初始化服務時最好使用
mysqld --initialized --console
命令; - MySQL8.0的配置變數與MySQL5.7不同,
[mysqld]
下麵設置字元集的變數名為character_set_server
; - 修改密碼的命令為
alter user 'root'@'localhost'identified by '密碼';
經過
之前裝5.7沒有什麼問題,結果裝8.0的時候一直無法啟動服務。
由於之前是採用mysqld --initialized -insecure
命令初始化,因此一頭霧水。在改為mysqld --initialized --console
命令後,發現出現了很多報錯的信息:
紅線上面這句是核心,意思是不知道你這個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。
在修改過密碼後,就可以正常使用了。
相關命令
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