答案:开启MySQL远程访问需修改用户权限并配置服务允许远程连接。首先创建或修改用户’username’@’%’并授权,执行FLUSH PRIVILEGES;然后在my.cnf中设置bind-address=0.0.0.0,重启MySQL服务;最后通过防火墙开放3306端口,云服务器还需配置安全组规则。

要在 MySQL 中开启远程访问权限,需要完成两个主要步骤:修改用户权限,允许从非本地连接;确保 MySQL 服务允许远程连接。以下是具体操作方法。
1. 修改 MySQL 用户权限
默认情况下,MySQL 用户通常只允许从本地(localhost)登录。要允许远程访问,需为用户设置可从其他主机连接的权限。
步骤:
如知AI笔记
如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型
27 查看详情
登录 MySQL 服务器(使用 root 或有权限的账户):
mysql -u root -p查看当前用户权限:
SELECT host, user FROM mysql.user;
如果用户的 host 是 localhost,则无法远程连接。 创建新用户或修改现有用户允许远程访问:
允许特定用户从任意主机连接(注意安全):
CREATE USER ‘username’@’%’ IDENTIFIED BY ‘password’;
或修改已有用户:
UPDATE mysql.user SET host=’%’ WHERE user=’username’ AND host=’localhost’;授予该用户相应权限,例如对所有数据库的访问:
GRANT ALL PRIVILEGES ON *.* TO ‘username’@’%’;
若只需访问某个数据库:
GRANT ALL PRIVILEGES ON database_name.* TO ‘username’@’%’;刷新权限使更改生效:
FLUSH PRIVILEGES;
2. 配置 MySQL 服务允许远程连接
MySQL 默认可能绑定到本地地址(127.0.0.1),阻止外部连接。需修改配置文件。
步骤:
找到 MySQL 配置文件 my.cnf 或 my.ini(Linux 通常在 /etc/mysql/my.cnf 或 /etc/my.cnf,Windows 在安装目录下)。找到 [mysqld] 段落,修改或添加以下行:
bind-address = 0.0.0.0
这表示监听所有网络接口。若只想允许特定 IP,可设为该 IP。 确保跳过网络限制(确认无 skip-networking 选项启用)。保存文件并重启 MySQL 服务:
Linux 示例:
sudo systemctl restart mysql
或
sudo service mysql restart
3. 确保防火墙和安全组放行
即使 MySQL 配置正确,系统防火墙或云服务商安全组也可能阻止 3306 端口。
开放 3306 端口(MySQL 默认端口):
使用 ufw:
sudo ufw allow 3306
使用 iptables:
sudo iptables -A INPUT -p tcp –dport 3306 -j ACCEPT如果是云服务器(如阿里云、AWS、腾讯云),还需在控制台配置安全组规则,允许入站 TCP 3306 端口。
完成以上步骤后,即可从远程客户端使用如下命令连接:
mysql -h your_mysql_server_ip -u username -p
基本上就这些。只要用户权限、MySQL 配置、网络和防火墙都设置正确,远程访问就能成功。注意安全性,避免将 root 用户暴露给 %,建议使用专用账号并限制 IP 范围。
以上就是如何在mysql中设置远程访问权限的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/302129.html
微信扫一扫
支付宝扫一扫