MySQL_帳號管理
1.新增帳號
新增帳號
--新增使用者 test, 密碼 newpassword, 允許任何來源 %
CREATE USER 'test'@'%' IDENTIFIED BY 'newpassword';
--新增使用者 test, 密碼 newpassword, 只允許本機(localhost)
CREATE USER 'test'@'localhost' IDENTIFIED BY 'newpassword';
賦予權限
--所有權限
grant all privileges ON *.* TO 'test'@'%';
--db1 所有查詢權限
grant select ON 'db1'.* TO 'test'@'%';
--更新權限
flush privileges;
2.修改密碼
查詢帳號
#先找到user
mysql> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | bookstackuser |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
4 rows in set (0.00 sec)
修改密碼
#修改密碼
mysql> alter user 'root'@'localhost' identified by 'sa1234Asdf';
#更新
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
3.忘記密碼(密碼回復)
- 修改設定檔 /etc/my.cnf
- 服務重啟登入
- 修改密碼
- 恢復設定檔 /etc/my.cnf
- 重啟服務
修改設定檔 /etc/my.conf
#新增skip-grant-tables
[mysqld]
skip-grant-tables
服務重啟登入
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# mysql
修改密碼
#修改密碼
mysql> alter user 'root'@'localhost' identified by 'newpassword';
#如果出現以下錯誤
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
## 先更新權限在修改密碼
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
#更新權限
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
恢復設定檔 /etc/my.conf
#移除(註解) skip-grant-tables
[mysqld]
#skip-grant-tables
重啟服務
[root@localhost ~]# systemctl restart mysqld