標籤:無法 set root exe bin nat key 驗證 修改使用者密碼
許可權檢查
許可權儲存在mysql庫的user, db, tables_priv, columns_priv, and procs_priv這幾個系統資料表中,待MySQL執行個體啟動後就載入到記憶體中。
使用者資訊儲存在mysql.user表。安裝時預設只有超級使用者root(如果不建立匿名使用者)。
mysql> desc mysql.user;
+------------------------+-----------------------------------+------+-----+----------
| Field | Type | Null | Key | Default
+------------------------+-----------------------------------+------+-----+----------
| Host | char(60) | NO | PRI |
| User | char(32) | NO | PRI |
host+user複合主鍵。允許訪問的用戶端+使用者名稱稱。所以同名稱是允許的。
Host: localhost //表示只能本機訪問,遠程無法訪問。
User: root
建立使用者
方法1,直接root建立。不推薦。
方法2,專門建立指令,需要賦予許可權。
create user ‘username‘@‘%‘ identified with mysql_native_password by ‘password‘; //%表示允許任何用戶端訪問。
create user username; //允許任何用戶端無密碼訪問。
賦予許可權
grant all privileges on *.* to ‘username‘@‘%‘; //此人成神。許可權詳情百度。
修改使用者密碼
set password for ‘username‘@‘%‘ = password(‘password‘);
update mysql.user set password = password(‘password‘) where user = ‘username‘ and host = ‘host‘;
刪除使用者
drop user ‘username‘@‘host‘;
忘記root密碼
C:\Users\Windows7-64>net stop mysql
MySQL 服務正在停止.
MySQL 服務已成功停止。
C:\Users\Windows7-64>cd C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>mysqld.exe --skip-grant-tables //跳過驗證登陸,滿許可權,非常危險,你懂的。
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>mysql
mysql> update mysql.user set password=password(‘root‘) where user=‘root‘ and host=‘localhost‘;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
殺進程mysqld.exe
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>mysql -uroot -proot
mysql>
Mysql 許可權檢查