MYSQL 5.6
1.創建用戶
1.1 格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%,%匹配所有主機,該地方設置成‘localhost’,代表只能本地訪問。
1.2 例子:
允許本地 IP 訪問
create user 'test'@'localhost' identified by '123456';
create user 'test'@'127.0.0.1' identified by '123456';
兩種方式均可
允許外網 IP 訪問
create user 'test'@'%' identified by '123456';
允許外網指定 IP 訪問
create user 'test'@'1.1.1.1' identified by '123456';
指定外網IP1.1.1.1下的用戶可以連接該數據庫
2.創建數據庫
2.1 格式:create database databasename DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
databasename:數據庫名
注意此處的字符集為utf8mb4,排序規則為utf8mb4_general_ci
3.給用戶授權
3.1 格式:GRANT privileges ON databasename.tablename TO 'username'@'host';
privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL
databasename:數據庫名
tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用表示,如.*
給用戶授權的前提,必須該用戶已存在。'test'@'host'中test為用戶名,host為主機地址。
TIPS:
host | scope | description |
---|---|---|
localhost | 本機 | localhost不會被解析成IP地址,直接通過UNIXsocket連接 |
127.0.0.1 | 本機 | 會通過TCP/IP協議連接,并且只能在本機訪問 |
::1 | 本機 | ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1 |
1.1.1.1 | 指定IP地址 | 該IP地址內網外網均可 |
% | 所有IP地址 | 所有IP地址均可訪問 |
3.2 例子:
授予用戶通過外網IP對于該數據庫的全部權限
grant all privileges on 'testdb'.* to 'test'@'%'';
授予用戶在本地服務器對該數據庫的全部權限
grant all privileges on 'testdb'.* to 'test'@'localhost';
用戶test無法從internet上直接訪問數據庫,只能在MYSQL主機上來訪問。
3.3 刷新權限:
使用以下語句刷新授權,修改立即生效
flush privileges;
4.撤銷用戶權限
4.1 格式:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
4.2 例子:
REVOKE SELECT ON *.* FROM 'test'@'%';
5.修改用戶密碼
5.1 格式:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
5.2 例子:
SET PASSWORD FOR 'test'@'%' = PASSWORD("123456");