在Ubuntu上管理MySQL权限需通过命令行操作,核心命令及用法如下:
登录MySQL
sudo mysql -u root -p # 使用root用户登录(需输入密码)
若root用户配置为密码验证,直接使用mysql -u root -p
。
创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
主机名
:localhost
(仅本地访问)、%
(允许所有IP)或具体IP。CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456';
授予权限
GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机名';
SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES
(所有权限)。*.*
(全局权限)、数据库.*
(数据库权限)、数据库.表
(表权限)。GRANT ALL PRIVILEGES ON mydb.* TO 'dev'@'localhost';
WITH GRANT OPTION
。刷新权限
FLUSH PRIVILEGES; # 使权限修改立即生效
查看权限
SHOW GRANTS FOR '用户名'@'主机名';
示例:SHOW GRANTS FOR 'dev'@'localhost';
撤销权限
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'主机名';
示例:REVOKE DELETE ON mydb.* FROM 'dev'@'localhost';
操作后需执行FLUSH PRIVILEGES;
。
删除用户
DROP USER '用户名'@'主机名';
示例:DROP USER 'dev'@'localhost';
注意事项:
/etc/mysql/mysql.conf.d/mysqld.cnf
),将bind-address
设为0.0.0.0
并重启服务。