Mysql用户相关操作
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
username
: 要创建的用户名。可以使用%
通配符来指定用户名前缀,例如'username%'
表示以username
开头的所有用户名。host
: 指定用户可以从哪个主机连接到MySQL服务器。可以使用通配符%
表示任何主机,例如'%'
或'localhost'
表示仅允许本地连接。password
: 用户的密码。密码必须符合MySQL的密码策略,例如长度、字符集等。TABLESPACE
: 指定用户默认使用的表空间。这对于使用存储引擎如InnoDB的用户特别有用,因为它定义了用户的数据和索引存储位置。TEMPORARY TABLESPACE
: 指定用户的临时表空间。这与默认表空间类似,但用于存储临时表和临时查询结果。MAX_QUERIES_PER_HOUR
: 指定用户在一小时内可以执行的查询的最大数量。这对于限制用户在特定时间段内的资源使用量非常有用。MAX_UPDATES_PER_HOUR
: 指定用户在一小时内可以执行的最大更新操作数。这可以限制对数据库的更改频率。MAX_CONNECTIONS_PER_HOUR
: 指定用户在一小时内可以建立的最大连接数。这有助于防止用户创建过多的并发连接而耗尽服务器资源。MAX_USER_CONNECTIONS
: 指定用户可以同时建立的最大连接数。这限制了单个用户可以同时拥有的连接数。PLUGIN
: 指定用于身份验证的插件。MySQL支持多种身份验证方法,例如mysql_native_password
、caching_sha2_password
等。
代码示例:
CREATE USER 'username'@'%' IDENTIFIED BY 'password' DEFAULT TABLESPACE 'tablespace_name' TEMPORARY TABLESPACE 'temp_tablespace_name' MAX_QUERIES_PER_HOUR 1000 MAX_UPDATES_PER_HOUR 500 MAX_CONNECTIONS_PER_HOUR 20 MAX_USER_CONNECTIONS 10 PLUGIN 'mysql_native_password';
指定密码验证方式
use mysql;
CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
修改用户密码
use mysql;
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
创建用户,外部可访问,并授权某个数据库
use mysql;
CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON database.* TO 'username'@'host' WITH GRANT OPTION;
FLUSH PRIVILEGES;
WITH GRANT OPTION 表示用户可以授权其他用户
WITH mysql_native_password 表示使用mysql_native_password 验证方式
外部访问需要改host为你自己的ip
删除用户
use mysql;
DROP USER 'username'@'host';