1. 程式人生 > >MYSQL5.7 ZIP版本安裝及相關問題解決

MYSQL5.7 ZIP版本安裝及相關問題解決

對於mysql5.7以後版本,沒有了my.ini檔案,這裡要自己新建。


安裝過程:

1、解壓zip檔案。例如D:\ProgramFile\mysql-5.7.19-winx64

2、新增環境變數。D:\ProgramFile\mysql-5.7.19-winx64\bin到path下面。

3、在D:\ProgramFile\mysql-5.7.19-winx64中新建my.ini文字檔案。

裡面內容如下:

# =============start============

[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8 
[mysqld]
#設定3306埠
port=3306 
# 設定mysql的安裝目錄
basedir=D:\ProgramFile\mysql-5.7.19-winx64
# 設定mysql資料庫的資料的存放目錄
datadir=D:\ProgramFile\mysql-5.7.19-winx64\data
# 允許最大連線數
max_connections=100
# 服務端使用的字符集預設為8位元編碼的latin1字符集
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
# 免密碼登陸
skip-grant-tables

# ================end===================

4、使用管理員身份開啟控制檯cmd.

切換到目錄D:\ProgramFile\mysql-5.7.19-winx64\bin下,執行以下程式碼:

 mysqld --initialize  mysqld -install  net start mysql

5、登陸root使用者,

 mysql -u -root (因為my.ini檔案最後一行有“skip-grant-tables”)
登陸提示輸入密碼時,直接按enter鍵進入。

6、設定自己的root密碼。

進入mysql後: mysql> use mysql; Database changed
mysql> update user set password=password("新密碼") where user="root";
這裡可能會出現如下問題:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("mysql") where user="root"' at line 1


這是因為原來是mysql資料庫下已經沒有password這個欄位了,password欄位改成了authentication_string

所以如果出現以上 問題要將update語句改為:

mysql> update user set authentication_string=password("新密碼") where user="root";

Query OK, 1 rows affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

密碼設定成功!

7、重新整理資料庫及退出mysql.

mysql> flush privileges;

mysql> quit;

8、要想使設定的密碼有效要註釋掉(刪除)my.ini這個檔案中的“skip-grant-tables”,儲存退出再重啟mysql就可以了。


總結: 對於網上各種忘記mysql密碼的解決方法,網上有(mysqld-nt --skip-grant-tables;命令開啟免密模式,總是出現卡在程序裡,無法完成)所以這裡最好 使用以上方法: 1、在my.ini檔案中新增“skip-grant-tables”。 2、重新啟動mysql,後免密進入mysql. 3、use mysql; update user set password=password("新密碼") where user="root"; (或update user set authentication_string=password("新密碼") where user="root";) 4、

要想使設定的密碼有效要註釋掉(刪除)my.ini這個檔案中的“skip-grant-tables”,儲存退出再重啟mysql就可以了。