添加用户

SQL指令如下:

CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';

例如,要创建在所有主机登录、密码为abc的用户foo,SQL语句如下:

create user 'foo'@'%' identified by 'Xpi7NIq6ArIfhif';

授予用户指定数据库名前缀的数据库的所有权限

SQL指令如下:

GRANT ALL ON `前缀%`.* TO '用户名'@'主机名';

注意,这里的数据库名要用反引号 ` 包裹起来,而不能用引号 "

例如,要将数据库名为 haha 开头所有数据库权限,授予 所有主机 登录的用户 foo ,SQL语句如下:

GRANT ALL on `haha%`.* TO 'foo'@'%'

设置用户的最大连接数

如果要设置MySQL数据库用户的最大连接数,不同数据库版本不一样。MySQL5.7及以上版本,可以直接用修改用户信息的方式进行修改,SQL指令如下:

ALTER USER '用户名'@'主机' WITH MAX_USER_CONNECTIONS 连接数

但是,MySQL5.6版本并不支持这个语句。在5.6版本中,是通过 GRANT 指令来设置的,SQL指令如下:

GRANT USAGE ON *.* TO '用户名'@'主机' WITH MAX_USER_CONNECTIONS 连接数;

注意,这里 GRANTpriv_type 设置的是 USAGE ,根据MySQL的文档,这个 USAGE 类型的 priv_type 表示什么权限都没有。因此这个语句执行的结果只是单纯的修改了用户的最大连接数。对于用户的既有权限没有任何影响。

如果要取消用户的最大连接数限制,只需要将这里的连接数设置为0即可。

例如,如果要将从 所有主机 登录的 haha 用户的最大连接数限制为 20 ,可以使用如下SQL语句:

ALTER USER 'haha'@'%' WITH MAX_USER_CONNECTIONS 20;
/* 或者 */
GRANT USAGE ON *.* TO 'haha'@'%' WITH MAX_USER_CONNECTIONS 20;