MySQL数据库远程权限设置与用户权限配置
在MySQL数据库中,默认情况下只允许本地登录,即只能在安装MySQL环境所在的主机下访问,在日常开发和使用中,经常需要访问远端服务器的数据库资源,此时就需要开启MySQL的远程访问权限并进行相应的用户权限配置,本文将详细介绍如何进行这些操作。
一、开启MySQL远程访问权限
1、连接MySQL环境:首先通过mysql
命令连接到MySQL。
mysql -u root -p
2、查看当前远程访问权限配置:使用以下命令查看当前用户的访问权限。
use mysql; SELECT User, Host FROM user;
默认情况下,root用户的Host为localhost,表示只能本地访问。
3、开启远程访问权限:有两种方法可以开启远程访问权限。
改表法:直接修改user
表中的host
字段。
update user set host='%' where user='root';
授权法:通过GRANT
命令授予远程访问权限。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
ALL PRIVILEGES
表示所有权限,*.
表示所有数据库和表,'%'
表示任何主机,'password'
为root用户的密码。
4、刷新权限:执行以下命令使修改生效。
FLUSH PRIVILEGES;
5、再次查看远程访问权限配置:确认修改是否成功。
SELECT User, Host FROM user;
root用户的Host应显示为`%,表示已开启远程访问权限。
二、创建新用户并设置权限
1、创建新用户:使用CREATE USER
命令创建一个新用户。
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
newuser
为用户名,password
为密码,localhost
表示本地登录,%
表示远程登录。
2、为用户授权:使用GRANT
命令为用户授予特定权限。
授予所有数据库的所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
授予特定数据库的特定权限(如只读权限):
GRANT SELECT ONdatabasename
.* TO 'newuser'@'localhost'; GRANT SELECT ONdatabasename
.* TO 'newuser'@'%';
3、刷新权限:执行以下命令使授权生效。
FLUSH PRIVILEGES;
4、查看用户权限:确认用户权限是否正确设置。
SHOW GRANTS FOR 'newuser'@'localhost'; SHOW GRANTS FOR 'newuser'@'%';
三、删除用户及其权限
1、删除用户:使用DROP USER
命令删除用户。
DROP USER 'newuser'@'localhost'; DROP USER 'newuser'@'%';
2、删除账户及权限:确保用户及其相关权限被完全删除。
DELETE FROM user WHERE User='newuser'; FLUSH PRIVILEGES;
四、注意事项与最佳实践
1、安全性考虑:不推荐直接给root用户开启远程访问权限,正式环境下,建议通过创建普通用户并给对应的用户赋权的形式来开放远程服务权限,并指定IP地址,做到权限粒度最小化。
2、防火墙设置:确保服务器的防火墙允许MySQL的默认端口(3306)通过,以便远程访问。
3、定期备份:在进行重要操作前,建议对数据库进行备份,以防意外情况发生。
以上就是关于“mysql 数据库远程权限设置_设置数据库用户权限”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!