環境準備
Linux發行版本:Centos7
Mysql數據庫版本:mysql-5.7.24
常用命令
- 以root用戶登錄數據庫
[admin@localhost bin]$ mysql -uroot -p
Enter password:
- 創建用戶
命令格式:
CREATE USER ‘username’@‘host’ IDENTIFIED BY ‘password’;
username:將要創建的用戶名
host:指定該用戶在哪個主機上可以登錄,“localhost"指該用戶只能在本地登錄,不能在另外一臺機器上遠程登錄,如果想遠程登錄,將"localhost"改爲”%",表示在任何一臺電腦上都可以登錄;也可以指定某臺機器可以遠程登錄;
password:該用戶的登錄密碼,密碼可以爲空,若爲空則該用戶可以不需要密碼登錄服務器。
例如:
CREATE USER 'test1'@'%' IDENTIFIED BY 'test123';
CREATE USER 'test2'@'localhost' IDENTIFIED BY '';
- 創建數據庫
CREATE DATABASE testdb CHARACTER SET utf8 COLLATE utf8_general_ci;
- 用戶授權
授權格式:
GRANT 權限 ON 數據庫.表名 TO 用戶名@登錄主機 IDENTIFIED BY ‘密碼’;
授權test1用戶擁有所有數據庫的所有權限:
GRANT ALL PRIVILEGES ON *.* to ‘test1’@’%’ IDENTIFIED BY ‘test123’;
FLUSH PRIVILEGES; #刷新系統權限表
如果你想限制用戶只能從10.10.10.10的主機連接到testdb數據庫,以上的授權語句可做如下修改:GRANT ALL PRIVILEGES ON . to ‘test1’@‘10.10.10.10’ IDENTIFIED BY ‘test123’;
授權test1用戶擁有testdb數據庫的所有權限:
GRANT ALL PRIVILEGES ON testdb.* to ‘test1’@’%’ IDENTIFIED BY ‘test123’;
FLUSH PRIVILEGES; #刷新系統權限表
指定部分權限給用戶:
GRANT SELECT,UPDATE ON testdb.* to ‘test1’@’%’ IDENTIFIED BY ‘test123’;
FLUSH PRIVILEGES; #刷新系統權限表
- 查看權限列表
命令格式:
SHOW GRANTS FOR ‘用戶名’@‘%‘主機名’;
- 撤銷用戶權限
REVOKE privilege ON 數據庫名.表名FROM ‘用戶名’@‘主機名’;
例如撤銷test1用戶的更新權限:
REVOKE update ON *.* FROM ‘test1’@’%’;
- 刪除賬戶及權限
命令格式:
DROP USER ‘username’@‘host’;
- 刪除數據庫
命令格式:
DROP DATABASE databasename;
- 修改密碼
mysql> use mysql; # 先切換到mysql庫,在修改密碼
mysql>update mysql.user set password=password(‘新密碼’) where User=‘test1’ and Host=’%’;
mysql>flush privileges;