技术文摘
Linux 下如何设置 MySQL 权限
Linux 下如何设置 MySQL 权限
在 Linux 环境中,合理设置 MySQL 权限对于数据库的安全和正常运行至关重要。以下将详细介绍相关设置方法。
以 root 用户登录 MySQL。在终端输入命令:mysql -u root -p,回车后输入 root 密码即可进入 MySQL 控制台。
一、创建用户并设置权限
如果要创建新用户并分配权限,可使用以下命令。例如,创建一个名为 newuser 的用户,密码为 password,并允许其从本地主机登录:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
接下来为新用户分配权限。若要授予该用户对特定数据库(如 testdb)的所有权限,命令如下:
GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'localhost';
ALL PRIVILEGES 表示所有权限,testdb.* 指 testdb 数据库下的所有表。若只想授予部分权限,如只允许查询,可以使用:
GRANT SELECT ON testdb.* TO 'newuser'@'localhost';
二、修改已有用户权限
若要修改现有用户权限,同样使用 GRANT 命令。比如,给 newuser 添加对 testdb 数据库的插入权限:
GRANT INSERT ON testdb.* TO 'newuser'@'localhost';
如果要撤销用户的某些权限,使用 REVOKE 命令。例如,撤销 newuser 对 testdb 数据库的删除权限:
REVOKE DELETE ON testdb.* FROM 'newuser'@'localhost';
三、刷新权限
在完成权限的创建、修改或撤销操作后,务必执行刷新权限命令,让设置立即生效:
FLUSH PRIVILEGES;
四、查看用户权限
想查看某个用户拥有的权限,可使用 SHOW GRANTS 命令。例如,查看 newuser 的权限:
SHOW GRANTS FOR 'newuser'@'localhost';
五、远程访问权限设置
若要允许用户从远程主机访问 MySQL,需先修改用户权限。比如,允许 newuser 从任意远程主机访问:
GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'%' IDENTIFIED BY 'password';
这里的 % 表示任意主机。要确保 MySQL 配置文件(通常是 /etc/mysql/mysql.conf.d/mysqld.cnf)中的 bind-address 配置项设置正确,若要允许远程连接,可将其注释掉或设置为 0.0.0.0。之后重启 MySQL 服务使设置生效。
通过以上步骤,就能在 Linux 系统下灵活、安全地设置 MySQL 用户权限,保障数据库的稳定运行与数据安全。