如何开启mysql远程访问_mysql授权配置步骤

发布时间 - 2026-01-03 00:00:00    点击率:
要让 MySQL 支持远程访问需两步:一是修改配置文件 bind-address 为 0.0.0.0 并重启服务,二是创建或授权用户如 'remote_user'@'%' 并刷新权限,最后确保防火墙及云安全组放行 3306 端口。

要让 MySQL 支持远程访问,核心是两步:修改绑定地址允许外部连接,再给指定用户授予远程登录权限。缺一不可,否则即使账号有权限也连不上,或能连上但被拒绝访问数据库。

1. 修改 MySQL 配置文件,放开监听地址

MySQL 默认只监听本地(127.0.0.1),需改为监听所有 IP 或指定网卡。

  • 找到配置文件:Linux 通常是 /etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnfWindowsmy.ini(在 MySQL 安装目录下)
  • 查找 bind-address 这一行,将其改为:
    bind-address = 0.0.0.0(监听所有 IPv4 地址)
    或指定服务器内网 IP,如 bind-address = 192.168.1.100
  • 保存后重启 MySQL 服务:
    sudo systemctl restart mysql(Ubuntu/Debian)
    sudo service mysqld restart(CentOS/RHEL)

2. 登录 MySQL,创建或授权远程用户

必须用 root 或高权限账号登录本地 MySQL(mysql -u root -p),然后执行授权语句。

  • 如果想复用现有用户(比如 root),直接授权(不推荐用于生产):
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
  • 更安全的做法:新建专用远程用户(例如用户名 remote_user,密码 SecurePass123):
    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'SecurePass123';
    GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'remote_user'@'%';
  • 务必刷新权限:
    FLUSH PRIVILEGES;

3. 检查防火墙是否放行 3306 端口

即使 MySQL 配置正确,防火墙也可能拦截连接请求。

  • Ubuntu/Debian(UFW):sudo ufw allow 3306
  • CentOS 7+/RHEL(firewalld):sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload
  • 云服务器(如阿里云、腾讯云):还需在安全组中手动放行 TCP 3306 端口

4. 测试远程连接

从另一台机器用客户端测试,确认是否生效:

  • 命令行连接(需安装 MySQL 客户端):
    mysql -h 服务器公网IP -u remote_user -p
  • 图形工具(如 MySQL Workbench、DBeaver):填入 IP、用户名、密码和端口(默认 3306)
  • 常见报错提示参考:
    ERROR 1130: Host 'x.x.x.x' is not allowed to connect → 用户授权未生效或 host 不匹配
    Can't connect to MySQL server → 网络不通、防火墙拦截、MySQL 未监听 0.0.0.0 或服务未启动

配置本身不复杂,但每一步都可能成为连接失败的原因。建议按顺序检查:配置文件 → 授权语句 → 防火墙 → 远程测试。安全起见,生产环境尽量避免开放 root 远程登录,且限制可连接的 IP 范围(把 @'%' 换成 @'192.168.1.%' 或具体 IP)。


# mysql  # linux  # centos  # windows  # 防火墙  # 云服务  # 端口  # ubuntu  # 工具  # 腾讯  # 阿里云  # win  # select  # Error  # delete  # 数据库  # debian  # 云服务器  # 配置文件  # 要让  # 重启  # 两步  # 客户端  # 云安  # 远程访问  # 远程登录  # 一是 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  详解阿里云nginx服务器多站点的配置  如何自定义建站之星模板颜色并下载新样式?  如何快速生成ASP一键建站模板并优化安全性?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  如何确保FTP站点访问权限与数据传输安全?  英语简历制作免费网站推荐,如何将简历翻译成英文?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何在IIS中新建站点并配置端口与物理路径?  打造顶配客厅影院,这份100寸电视推荐名单请查收  高性价比服务器租赁——企业级配置与24小时运维服务  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  BootStrap整体框架之基础布局组件  如何用已有域名快速搭建网站?  java中使用zxing批量生成二维码立牌  zabbix利用python脚本发送报警邮件的方法  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何在IIS中新建站点并解决端口绑定冲突?  如何做网站制作流程,*游戏网站怎么搭建?  如何为不同团队 ID 动态生成多个“认领值班”按钮  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Windows Hello人脸识别突然无法使用  如何在Windows虚拟主机上快速搭建网站?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  如何快速搭建安全的FTP站点?  如何用PHP工具快速搭建高效网站?  如何在万网主机上快速搭建网站?  实例解析Array和String方法  详解Huffman编码算法之Java实现  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  如何快速完成中国万网建站详细流程?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel如何创建自定义Facades?(详细步骤)  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  php json中文编码为null的解决办法  想要更高端的建设网站,这些原则一定要坚持!  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  Java遍历集合的三种方式  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  深圳网站制作培训,深圳哪些招聘网站比较好?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?