1. 程式人生 > >Windows環境下安裝 mysql-8.0.11-winx64 遇到的問題解決辦法

Windows環境下安裝 mysql-8.0.11-winx64 遇到的問題解決辦法

下載mysql安裝包,我的是下載mysql-8.0.11-winx64,解壓到你想安裝的目錄下,然後配置環境(window環境下,mac本還沒試過),

1、首先,配置環境:右擊此電腦->屬性->高階系統設定->環境變數->path->新建 ,然後將自己的路徑新增進去(例如我目錄:F:\mysql\mysql-8.0.11-winx64),除此之外還要看解壓的壓縮包內是否有my.ini檔案或者my-default.ini檔案,如果沒有需要自己寫一個在根目錄下,預設的配置資訊如下:

檢視所有的配置項,可參考:https://dev.mysql.com/doc/refman/8.0/en/mysqld-option-tables.html

[mysqld]
# 設定3306埠
port=3306
# 設定mysql的安裝目錄
basedir=F:\mysql\mysql-8.0.11-winx64
# 設定mysql資料庫的資料的存放目錄(此目錄會在之後進行命令生成,無需手寫)
datadir=F:\mysql\mysql-8.0.11-winx64\Data
# 允許最大連線數
max_connections=200
# 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors=10
# 服務端使用的字符集預設為UTF8
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
# 預設使用“mysql_native_password”外掛認證
default_authentication_plugin=mysql_native_password
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
[client]
# 設定mysql客戶端連線服務端時預設使用的埠
port=3306
default-character-set=utf8

2、然後開啟終端,window+r 然後輸入cmd 開啟終端並切換到該路徑下,並執行命令 mysqld --initialize 檢查當前環境,如果沒有任何報錯,開啟你的目錄你會看到你的根目錄會出現data資料夾;說明一切正常

注意這一步可能會遇到一些報錯資訊,例如彈出“ 由於找不到vcruntime140.dll,無法繼續執行程式碼,重新安裝程式可能會解決此問題 ”等問題,說明你的電腦缺少一些必要的檔案,這時要開啟控制面板檢視C++ 2015具體資訊,

我的是因為之前沒有x64位的C++,所以缺少檔案,如果你的有,那麼可點選解除安裝,它會提示你讓你進行修復,點選修復,完成,就可以繼續在終端輸入命令;

初始化資料庫

mysqld --initialize --console

這時會列印如下error,意思是已經有了data目錄了,只要把他刪除就好,

F:\mysql\mysql-8.0.11-winx64\bin>mysqld --initialize --console
2018-10-29T09:26:35.244245Z 0 [System] [MY-013169] [Server] F:\mysql\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 980
2018-10-29T09:26:35.287469Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2018-10-29T09:26:35.299110Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-10-29T09:26:35.302159Z 0 [System] [MY-010910] [Server] F:\mysql\mysql-8.0.11-winx64\bin\mysqld.exe: Shutdown complete (mysqld 8.0.11)  MySQL Community Server - GPL.

再次執行上面命令,會列印使用者的初始密碼,其中@localhost : XXXXXX就是預設密碼,需要記住,如果沒有記住,就將後來生成的data檔案刪除,再次生成也是可以的

F:\mysql\mysql-8.0.11-winx64\bin>mysqld --initialize --console
2018-10-29T09:28:49.177043Z 0 [System] [MY-013169] [Server] F:\mysql\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 12980
2018-10-29T09:29:19.270535Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: kw3AlnY_g.Dg
2018-10-29T09:29:41.684599Z 0 [System] [MY-013170] [Server] F:\mysql\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server has completed

3、然後安裝服務, mysqld --install[服務名] 如果只有一個服務可以不寫預設mysql,如果多個服務可以寫具體的服務名稱,XXXX,當回車之後,又出現錯誤, install/remove of the service deined,這是由於執行cmd的時候不是用管理員的身份執行的,只要再次以管理員的命令執行cmd就可以了,出現service successfully installed 說明服務安裝好了。

F:\mysql\mysql-8.0.11-winx64\bin>mysqld --install
Service successfully installed.

4、啟動服務,執行命令 : net start mysql ,看到服務已經啟動成功

F:\mysql\mysql-8.0.11-winx64\bin>net start mysql
MySQL 服務正在啟動 ....
MySQL 服務已經啟動成功。

5、更改密碼和密碼認證外掛 ,

在MySQL安裝目錄的 bin 目錄下執行命令:mysql -u root -p

F:\mysql\mysql-8.0.11-winx64\bin>mysql -u root -p
Enter password: *******
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

這時要重新生成密碼,刪除data目錄,執行mysqld --initialize --console,

F:\mysql\mysql-8.0.11-winx64\bin>mysqld --initialize --console
2018-10-29T10:04:23.337650Z 0 [System] [MY-013169] [Server] F:\mysql\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server in progress as process 7928
2018-10-29T10:05:19.210237Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: RXZG!fJR2Ly+
2018-10-29T10:06:00.603070Z 0 [System] [MY-013170] [Server] F:\mysql\mysql-8.0.11-winx64\bin\mysqld.exe (mysqld 8.0.11) initializing of server has completed

重新執行mysql -u root -p,填入密碼(注意密碼左右沒有空格),這時會打印出相關的資訊

F:\mysql\mysql-8.0.11-winx64\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.11

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

修改使用者密碼,在MySQL中執行命令:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';,出現下面情況就證明你已經修改成功。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '5502yulijian.';
Query OK, 0 rows affected (0.17 sec)

show databases; (‘;’一定要加

這樣就可以了