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 changedmysql> 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、