搞開發多年,其實MySql前先後後安裝配置了無數次,可是每次都須要到網上搜教程,折騰半天才搞定,此次索性把整個過程所有記錄下來,以便之後查閱。python
下載
到MySql官網,導航找到DOWNLOADS>>Community>>MySQL Community Server頁面,也能夠直接點擊此處,選擇相應的Mysql版本的zip包,我這裏是mysql-5.7.21-winx64.zip。mysql
安裝配置
- 下載好壓縮包以後直接解壓到將要存放的目錄;
- 在根目錄新建
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+右鍵,選擇在此處打開命令窗口;sql
-
執行命令
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
這個問題提示比較明顯,缺乏文件,缺啥補啥,網上方案不少,最簡單的辦法就是根據缺失的文件安裝相應版本的VC++運行庫的安裝包,由於MSVCR和MSVCP都屬於VC++運行庫,具體以下:
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版
this- Found option without preceding group in config file 出現該錯誤通常是
my.ini
文件頭部缺乏了[mysql]
,或者另外一種狀況是文件的編碼格式不對,將文件編碼保存爲ANSI
便可。
- Install/Remove of the Service Denied 出現該問題是由於執行命令的權限不夠,到C:\Windows\System32目錄下找到
-
執行命令
mysqld --initialize
,此時安裝根目錄下會自動生成data
文件夾(原目錄沒有該文件夾)。編碼 -
執行命令
net start mysql
,啓動服務,以下圖,證實已經安裝成功。 spa
配置帳號密碼
但當咱們輸入mysql
命令時,會出現如下錯誤。 命令行
實際上咱們並無設置任何密碼,解決辦法以下:code
- 打開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. 的錯誤,若是出現,則執行如下步驟便可:server執行命令
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;
給予任何主機訪問數據的權限。