怎么设置才能让外网ip可以访问mysql数据库

怎么设置才能让外网ip可以访问mysql数据库,第1张

1、首先检查mysql所在服务器的防火墙,如果限制了外网对3306端口的连接,那么放开限制
Linux服务器中执行
iptables -L 可以查看当前的防火墙规则
iptables -F 可以清空所有防火墙规则
2、确保mysql的监听地址是0000
监听地址是0000 ,表示该mysql允许所有IP地址进行连接,这是允许远程连接的基础
监听地址是127001,则代表该mysql只允许所在服务器本机连接,外网是无法连接的
怎么知道mysql的监听地址是多少
Linux服务器中执行如下命令可以查看: netstat -nutlp|grep mysql
3、添加远程连接mysql的账号
此步骤是必须要 *** 作的,mysql本身的用户只能在本机上连接数据库,外网连接的话,需要先添加远程用户并授权。
在mysql命令行模式下,或者phpmyadmin中执行sql语句添加远程连接用户
> grant all on to root@'%' identified by '123456';
> flush privileges;
命令解释:
第一个表示库,第二个表示表; 对全部数据库的全部表授权,sook 表示只对so这个库中的ok表授权
root 表示要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的
'%' 表示允许远程连接的IP地址,%代表允许所有IP连接
只允许某个IP远程连接,可以写成'123123123123'
只允许123123123这个网段远程连接,可以写成 '123123123%' '123456' 是设置授权用户的连接密码
flush privileges; 代表立即刷新权限表,使添加的用户生效
上面三步都设置好了,就可以再次尝试远程连接mysql了。

1)连接Oracle 8/8i/9i/10g/11g(thin模式)
ClassforName("oracleJDBCdriverOracleDriver")newInstance();
String url="JDBC:oracle:thin:@localhost:1521:orcl" //orcl为Oracle数据库的SID
String user="test";
String password="test";
Connection con=DriverManagergetConnection(url,user,password);
2)连接DB2数据库
ClassforName("comibmdb2jccDB2Driver");
String url="JDBC:db2://localhost:5000/testDb";/数据库连接串/
String user="test"; String password="test";
Connection con=DriverManagergetConnection(url,user,password);
3)连接MySQL数据库
ClassforName("commysqljdbcDriver");
String url="JDBC:mysql://localhost:8080/testDB";
String user="test"; String password="test";
Connection con=DriverManagergetConnection(url,user,password);
4)连接SQL Server数据库
ClassforName("commicrosoftJDBCsqlserverSQLServerDriver");
String url="JDBC:microsoft:sqlserver://localhost:1433;DatabaseName=testDb";
String user="test"; String password="test";
Connection con=DriverManagergetConnection(url,user,password);
5)连接PostgreSQL数据库
ClassforName("orgpostgresqlDriver");
String url="JDBC:postgresql://localhost/testDb";
String user="test"; String password="test";
Connection con=DriverManagergetConnection(url,user,password);
6)连接Access数据库
ClassforName("sunjdbcodbcJdbcOdbcDriver");
String url="JDBC:odbc:Driver={Microsoft Access Driver (mdb)};DBQ="+applicationgetRealPath("/Data/testDb/mdb");
Connection conn=DriverManagergetConnection(url,"","");
7连接Sybase数据库
ClassforName("comsybaseJDBCSybDriver");
String url="JDBC:sybase:Tds:localhost:5007/testDb";
Properties pro=SystemgetProperties();
proput("user","userId");
proput("password","user_password");
Connection con=DriverManagergetConnection(url,pro);
8连接informix数据库
ClassforName("cominformixJDBCifxDriver");
String url="JDBC:informix-sqli:localhost:1533/testDb:INFORMIXSERVER=myserver"user=testUser;password=testpassword"; Connection con=DriverManagergetConnection(url);
示例:
连接SQL Server2008R2数据库
首先Build Path → 添加外部sqljdbcjar驱动
import javasql;
public class DB {
public static void main(String[] args) throws Exception {
ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");
Connection conn = DriverManagergetConnection("jdbc:sqlserver://localhost:1433; DatabaseName=数据库名", "sa", "1234");
Statement stmt = conncreateStatement();
ResultSet rs = stmtexecuteQuery("select from 表名");
while(rsnext()) {
Systemoutprintln("id为:" + rsgetString("id") + "name为:" + rsgetString("name"));
}
Systemoutprintln("数据库连接成功!");
rsclose();
stmtclose();
connclose();
Systemoutprintln("数据库成功关闭!");
}
}

首先在数据库服务器上设置mysql可以远程访问,其次打开数据库服务器所在的linux系统上的防火墙策略添加3306端口,最后配置网络环境让2台机器可以进行通信。
其它java工程配置数据库的ip和用户名密码即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13468482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-13
下一篇 2023-08-13

发表评论

登录后才能评论

评论列表(0条)

保存