mysql开放允许外部访问

本文介绍了如何解决MySQL安装后只能本地访问的问题,步骤包括使用localhost登录并授权所有权限给远程用户,以及调整Windows防火墙设置。重点在于GRANT ALL PRIVILEGES语句的使用和防火墙规则的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.问题背景
mysql 安装只可以localhost访问连接,远程ip无法连接
报错信息:message from server: "Host ‘xxx’ is not allowed to co
等等
2.解决办法
A>先用本机localhost登录,执行sql

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'password' WITH GRANT OPTION;

root:表示你要开放的远程连接的用户名
password:表示要开放的远程连接用户的用户密码
B>如果连接不上,则把windows的防火墙允许mysql通过

### MySQL 配置允许外部 IP 连接的方法 为了使 MySQL 数据库能够被外部 IP 访问,需要完成以下几个方面的配置: #### 1. 修改 MySQL 的 `bind-address` 参数 MySQL 默认会监听本地地址 (`127.0.0.1`),这意味着它仅接受来自本机的连接请求。为了让 MySQL 接受外部网络的连接,需将其绑定地址更改为 `0.0.0.0` 或者指定具体的外网 IP 地址。 找到 MySQL 的配置文件(通常是 `my.cnf` 或 `my.ini`),编辑如下内容: ```ini [mysqld] character-set-server=utf8mb4 bind-address=0.0.0.0 default-storage-engine=INNODB [mysql] default-character-set=utf8mb4 [client] default-character-set=utf8mb4 ``` 上述配置中的 `bind-address=0.0.0.0` 表示 MySQL 将监听所有可用的网络接口[^3]。 #### 2. 设置用户权限以支持远程访问 即使完成了绑定地址的修改,还需要赋予特定用户的远程访问权限。登录到 MySQL 命令行工具后执行以下 SQL 语句来授予远程访问权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; ``` 这里 `'your_username'@'%'` 中 `%` 是通配符,代表任何主机都可以通过该用户名进行连接。如果希望限定某些特定 IP,则可以用实际的 IP 替代 `%`[^4]。 #### 3. 确保防火墙规则允许外部流量到达 MySQL 端口 (默认为 3306) 除了调整 MySQL 自身的设置之外,还需确认操作系统层面以及云服务商的安全组策略不会阻止外界对该端口的数据传输。例如,在 Linux 上可以通过 iptables 添加规则放行 TCP/3306 流量;而在阿里云这样的平台上则可能需要额外配置安全组入站规则以便开放端口号给公网访问[^2]。 #### 4. 重启 MySQL 服务生效改动 最后一步就是重新启动 MySQL 服务让刚才所做的变更立即起效: ```bash sudo systemctl restart mysql ``` 以上步骤完成后,理论上您的 MySQL 实例就应该可以从互联网上的任意位置进行了正常连结操作了——当然前提是已经妥善处理好了安全性考量比如加密通信链路等等事项未在此处详述。 ```python import pymysql connection = pymysql.connect( host='your_server_ip', user='your_username', password='your_password', database='your_database' ) try: with connection.cursor() as cursor: sql_query = "SELECT VERSION();" cursor.execute(sql_query) result = cursor.fetchone() print(f"MySQL Version: {result}") finally: connection.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值