搞開發多年,其實MySql前前後後安裝配置了無數次,但是每次都需要到網上搜教程,折騰半天才搞定,這次索性把整個過程全部記錄下來,以便以後查閱。 下載 到 "MySql官網" ,導航找到 DOWNLOADS Community MySQL Community Server 頁面,也可以直接 "點擊此處 ...
搞開發多年,其實MySql前前後後安裝配置了無數次,但是每次都需要到網上搜教程,折騰半天才搞定,這次索性把整個過程全部記錄下來,以便以後查閱。
下載
到MySql官網,導航找到DOWNLOADS>>Community>>MySQL Community Server頁面,也可以直接點擊此處,選擇相應的Mysql版本的zip包,我這裡是mysql-5.7.21-winx64.zip。
安裝配置
- 下載好壓縮包之後直接解壓到將要存放的目錄;
- 在根目錄新建
my.ini
文件(並沒有所謂的my-default.ini
文件),保存為ANSI
編碼格式,如下圖: 向
my.ini
中拷入以下代碼:[mysql] # 設置mysql客戶端預設字元集 default-character-set=utf8 [mysqld] # 設置3306埠 port = 3306 # 設置mysql的安裝目錄 basedir=D:\\Program Files\\mysql-5.7.21 # 允許最大連接數 max_connections=200 # 服務端使用的字元集預設為8比特編碼的latin1字元集 character-set-server=utf8 # 創建新表時將使用的預設存儲引擎 default-storage-engine=INNODB
- 在D:\Program Files\mysql-5.7.21\bin目錄下,按住Shift+右鍵,選擇在此處打開命令視窗;
- 執行命令
mysqld --install
,這時有可能會出現以下幾種錯誤:- Install/Remove of the Service Denied
出現該問題是因為執行命令的許可權不夠,到C:\Windows\System32目錄下找到cmd.exe
文件,重新以管理員身份運行打開cmd視窗,然後轉到D:\Program Files\mysql-5.7.21\bin目錄,再次執行mysqld --install
命令。 - 丟失MSVCR120.dll,MSVCP120.dll
msvcp、msvcr、vcomp140.dll屬於VC++2015版 msvcp、msvcr、vcomp120.dll屬於VC++2013版 msvcp、msvcr、vcomp110.dll屬於VC++2012版 msvcp、msvcr、vcomp100.dll屬於VC++2010版 msvcp、msvcr、vcomp90.dll屬於VC++2008版 msvcp、msvcr60、71和80.dll,以及vcomp.dll(不帶數字版本號)屬於VC++2005版
- Found option without preceding group in config file
出現該錯誤一般是my.ini
文件頭部缺少了[mysql]
,或者另一種情況是文件的編碼格式不對,將文件編碼保存為ANSI
即可。
- Install/Remove of the Service Denied
- 執行命令
mysqld --initialize
,此時安裝根目錄下會自動生成data
文件夾(原目錄沒有該文件夾)。 執行命令
net start mysql
,啟動服務,如下圖,證明已經安裝成功。
配置賬號密碼
但當我們輸入mysql
命令時,會出現以下錯誤。
實際上我們並沒有設置任何密碼,解決辦法如下:
- 打開MySQL目錄下的
my.ini
文件,在文件的最後添加一行skip-grant-tables
,保存並關閉文件。 - 重啟MySQL服務。
- 在命令行中輸入
mysql -uroot -p
(不輸入密碼),回車即可進入資料庫。 - 執行SQL語句
use mysql;
使用mysql資料庫。 - 執行SQL語句
update user set authentication_string=password('123456') where user='root';
。 - 打開MySQL目錄下的
my.ini
文件,刪除最後一行的skip-grant-tables
,保存並關閉文件。 重啟MySQL服務。
註:
此時如果執行如use mysql
等命令,可能會出現 You must reset your password using ALTER USER statement before executing this statement. 的錯誤,如果出現,則執行以下步驟即可:執行命令
SET PASSWORD = PASSWORD('123456');
;
執行命令ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
。
開啟遠程連接
- 執行命令
MySQL -uroot -p123456
; - 執行命令
use mysql;
; - 執行命令
update user set host = '%' where user = 'root';
; - 執行命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
給予任何主機訪問數據的許可權。