当前位置: 代码网 > it编程>数据库>Mysql > MySQL开启远程访问权限的完整步骤记录

MySQL开启远程访问权限的完整步骤记录

2025年06月27日 Mysql 我要评论
要在mysql中开启远程访问权限,需完成以下步骤:1. 登录mysql服务器mysql -u root -p# 输入root密码进入mysql命令行2. 创建允许远程访问的用户(或修改现有用户)方案1

要在mysql中开启远程访问权限,需完成以下步骤:

1. 登录mysql服务器

mysql -u root -p
# 输入root密码进入mysql命令行

2. 创建允许远程访问的用户(或修改现有用户)

方案1:创建新用户并授权

-- 创建用户('username'替换为用户名,'password'替换为密码,'remote_ip'替换为远程客户端ip或'%'允许所有ip)
create user 'username'@'remote_ip' identified by 'password';

-- 授予权限(建议按需授权,此处示例授予所有数据库的完全权限)
grant all privileges on *.* to 'username'@'remote_ip' with grant option;

-- 刷新权限
flush privileges;

方案2:修改root用户允许远程访问(不推荐,存在安全风险)

-- 更新root用户的host为'%'(允许任意ip)
update mysql.user set host='%' where user='root' and host='localhost';

-- 刷新权限
flush privileges;

3. 修改mysql配置文件

  • 找到配置文件

    • linux/etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf

    • windowsc:\programdata\mysql\mysql server x.x\my.ini

  • 修改配置

[mysqld]
bind-address = 0.0.0.0  # 允许所有ip连接(默认值为127.0.0.1,仅限本地)

4. 重启mysql服务

  • linux:

    sudo systemctl restart mysql   # ubuntu/debian
    sudo systemctl restart mysqld  # centos/rhel
  • windows:

    • 通过服务管理器重启 "mysqlxx" 服务。

5. 开放防火墙端口(默认3306)

  • linux (ufw):

    sudo ufw allow 3306/tcp
    sudo ufw reload
  • linux (firewalld):

    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload
  • windows:

    • 控制面板 → windows defender 防火墙 → 高级设置 → 入站规则 → 新建规则(端口3306)。

6. 验证远程连接

# 从另一台机器测试连接(替换ip、用户名、密码)
mysql -h <mysql_server_ip> -u username -p

常见问题排查

1. 错误:error 2003 (hy000): can't connect to mysql server

  • 原因:防火墙未放行端口或mysql未监听外网。

  • 解决

    # 检查端口监听状态
    netstat -tuln | grep 3306
    # 应显示:0.0.0.0:3306 或 :::3306

2. 错误:error 1130 (hy000): host 'xxx.xxx.xxx.xxx' is not allowed

  • 原因:用户权限未正确配置。

  • 解决

    -- 检查用户权限
    select host, user from mysql.user;
    -- 确保目标ip或'%'存在授权记录

3. 错误:error 1045 (28000): access denied

  • 原因:密码错误或用户无权限。

  • 解决:确认用户名、密码及授权ip是否匹配。

安全建议

  • 最小权限原则:按需授予权限(如select, insert而非all privileges)。

  • 限制访问ip:避免使用'%',指定具体ip或网段。

  • 启用ssl加密(可选):

    alter user 'username'@'remote_ip' require ssl;

通过以上步骤,即可安全地开启mysql远程访问权限。

总结

到此这篇关于mysql开启远程访问权限的文章就介绍到这了,更多相关mysql开启远程访问权限内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • MySQL之InnoDB存储引擎中的索引用法及说明

    MySQL之InnoDB存储引擎中的索引用法及说明

    1、背景innodb存储引擎的基本存储单位是页,索引也是存储在页上的,b+树中非叶子节点的页也是数据页,和我们插入数据的区别是存放的行记录叫目录项记录,我们插入... [阅读全文]
  • mysql中的服务器架构详解

    mysql中的服务器架构详解

    1、背景简单理解一下mysql的服务器架构。2、mysql服务器架构解释mysql的架构图如下:主要分为三部分:客户端、服务端、存储引擎。接下来我们来解释一下各... [阅读全文]
  • MySQL之InnoDB中的锁用法

    MySQL之InnoDB中的锁用法

    1、背景为了满足数据库对数据的一致性、事务隔离性、高并发性能需求,就有了锁机制,innodb的锁机制是实现事务隔离性和并发控制的核心组件,接下来就来讲一下锁机制... [阅读全文]
  • MySQL之InnoDB中的MVCC用法

    MySQL之InnoDB中的MVCC用法

    1、背景mvcc叫做多版本并发控制,通过维护数据的多个历史版本实现读写分离:读操作访问快照版本,无需加锁,避免阻塞写操作;写操作创建新版本,不影响其它事务的读操... [阅读全文]
  • MySQL之undo日志页结构详解

    1、背景之前讲过undo日志类型,本篇文章再来具体讲解一下undo日志页结构。2、undo日志页结构【1】fil_page_undo_log页innodb中最基本的存储单位是页,u…

    2025年06月26日 数据库
  • MySQL中的undo日志类型使用

    MySQL中的undo日志类型使用

    1、背景事务的回滚机制是通过undo日志来实现的,我们只需要对insrt、delete、update操作记录回滚日志,select不需要记录回滚日志,这三种操作... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com