記一次安裝 MySQL 的過程
一直以來我用的 MySQL 都是從官網(wǎng)下載的zip壓縮包归形,解壓后自己配置的。但是這次安裝時(shí)遇到了幾個(gè)坑,特別在這里記錄一下贱案。
再次更新, 今天安裝 MySQL 8.0.11 , 也記錄一下安裝的過程, 對(duì)文章做一下修改.
新建配置文件
自從 MySQL-5.7.18 之后官網(wǎng)提供的壓縮包就沒有 my-default.ini 的配置文件。所以需要自己新建配置文件 my.ini止吐,放在 MySQL 的根目錄下宝踪。
配置文件的內(nèi)容如下:
[mysql]
# 設(shè)置 mysql 客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置 3306 端口
port=3306
# 設(shè)置 mysql 的安裝目錄
basedir=C:\Program Files\mysql-8.0.11
# 設(shè)置 mysql 數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=C:\Program Files\mysql-8.0.11\data
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn) utf8
character-set-server=utf8mb4
# 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎
default-storage-engine=INNODB
注意配置文件在保存時(shí)編碼為 ansi,否則會(huì)報(bào)錯(cuò)誤碍扔。(不知道是不是真的...)
添加環(huán)境變量
修改系統(tǒng)變量 Path瘩燥,加上 MySQL 的 bin 路徑,此處為 C:\Program Files\mysql-8.0.11\bin
不同。
安裝 MySQL 的服務(wù)
以管理員權(quán)限打開cmd厉膀,進(jìn)入 C:\Program Files\mysql-8.0.11\bin
目錄下,輸入服務(wù)安裝命令:
mysqld install MySQL --defaults-file="C:\Program Files\mysql-8.0.11\my.ini"
相對(duì)應(yīng)的, 卸載服務(wù)命令為
mysqld -remove
然后自動(dòng)生成 root 用戶溶耘,可以不帶密碼:
mysqld --initialize-insecure
或者帶隨機(jī)密碼:
mysqld --initialize
隨機(jī)密碼被保存在錯(cuò)誤日志里,位于(前面配置好的datadir)數(shù)據(jù)文件夾下服鹅,文件名為:主機(jī)名.err
建議用 --initialize-insecure
參數(shù)生成不帶密碼的 root 用戶, 因?yàn)楹竺嬗每蛻舳诉B接時(shí)很有可能出現(xiàn)caching-sha2-password
問題, 到時(shí)候還是要修改密碼的. 題外話, 以前安裝 MySQL 時(shí)沒有理解 mysqld --initialize
的意義, 還以為是我忘記密碼了, 搞得只能進(jìn)安裝模式重置 root 密碼.
注意:如果要重新初始化凳兵,必須先清空data文件夾。
然后執(zhí)行
net start mysql
無密碼進(jìn)入 MySQL:
mysql -u root
有密碼進(jìn)入 MySQL:
mysql -u root -p
遇到的坑
客戶端連接如果出現(xiàn) caching-sha2-password 問題
我在使用 DBeaver 連接 MySQL 時(shí)會(huì)提示 caching-sha2-password 問題企软,死活建立不上連接庐扫。但是我在 cmd 中又可以用密碼成功登錄。解決方案就是重新修改密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; # 更新一下用戶的密碼
FLUSH PRIVILEGES; # 刷新權(quán)限
提示服務(wù)已存在的錯(cuò)誤
今天安裝 8.0 正式版時(shí)提示服務(wù)已存在的錯(cuò)誤. 我是直接手動(dòng)刪除以前的 MySQL 文件, 應(yīng)該是沒有卸載干凈, 可以在 cmd 下看有沒有 MySQL 的服務(wù)名.
sc query mysql
如果有,就刪除它
sc delete mysql
然后再按照之前的步驟配置 MySQL.