如何允许外网可以连接mysql数据库

下面就是具体的实现方法:
1、首先检查mysql所在服务器的防火墙,如果限制了外网对3306端口的连接,那么放开限制
Linux服务器中执行 
iptables -L   可以查看当前的防火墙规则
iptables -F   可以清空所有防火墙规则

2、确保mysql的监听地址是0.0.0.0
监听地址是0.0.0.0 ,表示该mysql允许所有IP地址进行连接,这是允许远程连接的基础
监听地址是127.0.0.1,则代表该mysql只允许所在服务器本机连接,外网是无法连接的

怎么知道mysql的监听地址是多少呢?
Linux服务器中执行如下命令可以查看:    netstat -nutlp|grep mysql 
 
Windows服务器在cmd中执行如下命令可以查看   netstat -ano|findstr mysql

如果监听的地址不是0.0.0.0,该怎么办?
因为mysql默认是监听0.0.0.0的,如果查看监听的不是,则肯定是配置文件中的bind-address参数的问题,
需要修改mysql的配置文件中的bind-address参数,将bind-address=127.0.0.1 修改成 bind-address=0.0.0.0
保存好后,重启mysql服务就会生效了。
以linux系统为例:

3、添加远程连接mysql的账号
此步骤是必须要操作的,mysql本身的用户只能在本机上连接数据库,外网连接的话,需要先添加远程用户并授权。
在mysql命令行模式下,或者phpmyadmin中执行sql语句添加远程连接用户
> grant all on *.* to [email protected]‘%‘ identified by ‘123456‘;
> flush privileges;

命令解释:
*.*          第一个*表示库,第二个*表示表; *.*对全部数据库的全部表授权,so.ok 表示只对so这个库中的ok表授权
root        表示要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的
‘%‘          表示允许远程连接的IP地址,%代表允许所有IP连接
               只允许某个IP远程连接,可以写成‘123.123.123.123‘
               只允许123.123.123.*这个网段远程连接,可以写成  ‘123.123.123.%‘  ‘123456‘  是设置授权用户的连接密码
flush privileges;  代表立即刷新权限表,使添加的用户生效

上面三步都设置好了,就可以再次尝试远程连接mysql了。

时间: 2024-10-29 19:05:56

如何允许外网可以连接mysql数据库的相关文章

阿里 Linux服务器外网无法连接MySQL解决方法

我的服务器买的是阿里云ECS linux系统.为了更好的操作数据库,我希望可以用navicat for mysql管理我的数据库. 当我按照正常的模式去链接mysql的时候, 报错提示: 2003- Can't connect MySQL Server on 'x.x.x.x'(10038) 于是,通过查找资料,我找到了解决的方法,其实是阿里云服务器为了安全默认不允许从外面链接Mysql数据库. 下面是解决整理的三种解决的方法: 第一种.监听地址配置错误解决方法: 检查mysql服务端口(默认为

MySQLdb库连接MySQL数据库

Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构.host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善.界面友好.软件 Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量

(详细)JAVA使用JDBC连接MySQL数据库(1)- 软件

欢迎任何形式的转载,但请务必注明出处. 1.jdk 点击查看安装和环境配置教程 2.Eclipse 点击进入官网下载 注意下载完成打开.exe后,出现下图界面,有很多版本供选择 本人目前在学JSP所以安装的是Java EE版本,初学者可以选择第一个Java Developers版本 3.Mysql 点击进入官网下载 点击进入推荐安装教程+环境配置 下载页面注意事项 (虽然选项只有32位的,但下载完成后32位和64位都会安装) (上面的是在线安装,下面的是离线安装,建议选择离线安装) 系列文章 (

JDBC连接MySQL数据库及演示样例

JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,能够为多种关系数据库提供统一訪问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发者提供了一个标准的API,据此能够构建更高级的工具和接口,使数据库开发者能够用纯 Java API 编写数据库应用程序,而且可跨平台执行,而且不受数据库供应商的限制.

jdbc 连接mysql数据库

jdbc驱动到官网下载,放在jdk的相关目录下面,或者jar文件加入到工程下面 package test_mysql; import java.sql.*; import java.util.Set; public class testjdbc { public static Connection getConnection() throws ClassNotFoundException, SQLException{ String URL="jdbc:mysql://localhost:3306

python3.4怎么连接mysql pymysql连接mysql数据库

本文介绍了python3 4连接mysql数据库的方法,在python3 4中使用原来python2 7的mysqldb已不能连接mysql数据库了,可以使用pymysql. 在python3.4中使用原来python2.7的mysqldb已不能连接mysql数据库了,可以使用pymysql,来完成连接mysql的重任. 具体步骤: 序号 描述1 去github上下载pymysql的安装包pymysql https://github.com/PyMySQL/PyMySQL2 解压到某个盘符下3 

R连接mysql数据库方法详解

Warning messages: 1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 当R语言从数据库取出数据时,出现以上错误,这是由于未配置ODBC数据源引起的错误,以下将介绍该问题的解决方案,同时介绍R连接mysql数据库的方法一.配置ODBC数据源1.下载m

Qt 5.4.1下编译MySQL驱动,连接MySQL数据库

Qt安装在D:\Qt目录,Qt 5.4.1下连接MySQL数据库,发现会出现以下错误 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL QMYSQL3 QODBC 到D:\Qt\Qt5.4.1\5.4\mingw491_32\plugins\sqldrivers目录下看看,发现是有mysql驱动的 Google了一下,据说是该驱动所满足的依赖性,不满足,需要重

【Python】Windows平台下Python、Pydev连接Mysql数据库

Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是很简单的. 首先,你要配置好Python的开发环境,详见<[Python]Windows版本的Python开发环境的配置,Helloworld,Python中文问题,输入输出.条件.循环.数组.类>(点击打开链接),与Mysql的开发环境,详见<[Mysql]Mysql的安装.部署与图形化>(点击打开链接). 之后,打开Python的官网(点击打开链接),如下图,直接下载一