主機上找到配置文件
-
Windows:
my.ini
選擇默認的安裝路徑,則配置文件在:
C:\ProgramData\MySQL\MySQL Server 5.7/my.ini
可能找不到
ProgramData
文件夾,這是因為一般是被隱藏了,可以直接復制上邊路徑到資源管理器,再訪問即可。
-
Linux:
my.cnf
選擇默認的安裝路徑,則配置文件在:
/etc/my.cnf
其他找到
my.cnf
的方法:
- 首先找到mysqld的路徑:
which mysqld
出來的路徑就是
mysqld
的路徑。
- 敲命令:
/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options'
在這里就可以看到
my.cnf
的路徑。
跳過登錄時的權限檢驗
- 修改配置文件,在
[mysqld]
下一行加入:
[mysqld]
skip-grant-tables
- 重啟
MySQL
服務:
-
Windows:
- 推薦:
服務
=>MySQl
=>重啟此服務
- 依次執行
net stop mysql
、net start mysql
- 推薦:
-
Linux:
- 啟動:
service mysql start
- 停止:
- 使用server方式:
service mysqld stop
- 使用mysqladmin方式:
mysqladmin shutdown
- 使用server方式:
- 重啟:
service mysqld restart
service mysql restart
(5.5.7版本命令)
- 啟動:
重新登錄MySQL
- 重啟后,用
mysql -uroot -p
登錄:
- 可以
不需要密碼
就可以登陸,因為跳過了登陸時的權限檢驗
。
mysql -uroot -p
設置新的密碼
- 選擇
mysql
數據庫:
use mysql
- 修改密碼:
update user set authentication_string = password ('new-password') where user = 'root';
這里要更改的是
authentication_string
, 而不是 ``password` 字段。否則就像下面的報錯:mysql> update user set Password=password('new-password') where user='root'; ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
- 刪除配置文件中在
[mysqld]
下一行加入的:
[mysqld]
skip-grant-tables
- 重啟
MySQL
服務
驗證新密碼登錄
- 使用:
-
此時,需要
權限檢驗
-
務必刪除配置文件中的
skip-grant-tables
,為了數據庫的安全。
mysql -uroot -p
總結
以上所有的命令行過程,如下圖: