mysql和oracle连接服务器问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql和oracle连接服务器问题相关的知识,希望对你有一定的参考价值。

1. 在客户端连接mysql服务器时,无法连通,telnet MYSQL服务默认端口不通,你将如何处理此问题,请写出解决思路。
2. 在客户端连接Oracle服务器时,无法连通,telnet Oracle服务默认端口不通,你将如何处理此问题,请写出解决思路。
请给出详细的解决方案,而不是简单的大体思路

很简单的哦,首先判断网络是否通,ping一下,如果ping通说明网络通,就进行下一步;
其次telnet不通,说明服务器之间存在防火墙,检查一下防火墙,看看是不是不允许3306(mysql),1251(oracle)访问。linux下一般都是iptables,windows下的就不用我说了吧或者在测试之前请确认数据库服务端口mysql(3306)和oracle(1521)是否正确,使用telnet是个不错的方法
1、先测试服务器本机是否能连接,如果不能连接是服务没有启动
2、服务器是否有防火墙,windows xp和2003自带防火墙,在防火墙中需要打开服务的端口,也可以关闭防火墙测试下
参考技术A 很简单的哦,首先判断网络是否通,ping一下,如果ping通说明网络通,就进行下一步;
其次telnet不通,说明服务器之间存在防火墙,检查一下防火墙,看看是不是不允许3306(mysql),1251(oracle)访问。linux下一般都是iptables,windows下的就不用我说了吧
参考技术B 在测试之前请确认数据库服务端口mysql(3306)和oracle(1521)是否正确,使用telnet是个不错的方法
1、先测试服务器本机是否能连接,如果不能连接是服务没有启动
2、服务器是否有防火墙,windows xp和2003自带防火墙,在防火墙中需要打开服务的端口,也可以关闭防火墙测试下本回答被提问者和网友采纳
参考技术C 1.首先查看网络是否连通,使用ping命令;
2.然后检查客户端防火墙和服务器端防火墙端口是否打开;
3.Linux打开端口命令:
nc -lp 23 &(打开端口)
netstat -an | grep 23 (查看是否打开端口)
4.Windows如何打开端口,我就不详细介绍了

基于ADO的远程Oracle连接

最近在一个通过MFC做一个界面,通过这个界面可以对布置在另一台服务器上的数据库MySQL、SQl Server、Oracle进行增删创建表的操作。其中我通过ADO很快就完成了对MySQL和SQL Server的控制。但是Oracle的连接就麻烦很多,我完成这个项目的大部分的时间都在研究怎么与Oracle数据库互通。

先声明下我的电脑环境,没有装ORACLE客户端,WIN7_64位操作系统,使用的编译器是VC6。服务器用的是WIN10的系统,Oracle的版本为11.2.0.1.0,我客户端安装了

先交代下,我用OTL最终没能成功连接上数据库,最终是用ADO连接上的,以下是我整个踩坑过程中难点的记录。

现有的一些工具有很多,最终考虑先用OTL尝试。

网上很多人说使用OTL只要有一个头文件就够了,而我尝试了只包含OTLV4.H后连编译都通不过,因为还要添加OCI的各种lib库和OCI.dll。

我是先去别的博客推荐的英文网站上下了一个头文件OTLV4.H,结果发现是个坑,里面的代码是错的,怎么都是编译不过的,后来尝试性的去国内的一个网站下载了一个OTLV4.h没想到竟然编译通过了。

然后我又下载了OCI的各种lib库和OCI.dll。

在新建工程中,要把OCI.dll放在编译出来的DEBUG或者RELEASE文件中,

然后在VC6的左上角菜单中project->project setting->LINK->input中的object/library modules中填入oci.lib,在additional library path中填入...\\OCI\\lib\\MSVC(这个是OCI的lib文件库)。

在左上角菜单中tool->options->directories中写入include文件目录...\\OCI\\include。

然后在工程中包含otlv4.h的头文件,这样工程环境的搭建就完成了。

OTL的头文件中根据你的宏定义选择相应功能。

我根据我的环境选择了在StdAfx.h中加入以下宏定义内容:

#define OTL_ORA11G_R2 // Compile OTL 4.0/OCI11.2
#define OTL_ORA_UTF8 
#define OTL_ORA_OCI_ENV_CREATE

宏定义介绍参考http://otl.sourceforge.net/otl3_compile.htm。

db.rlogon("userid/password@//IP:PORT/SID"); //这是我的链接字符串格式。

连接前记得先初始化。 

大部分的环境都好了,可是就死连不上,最后放弃转用ADO。

MFC调用ADO的环境搭建如下:

#import "../../out/msado15.dll" no_namespace rename ("EOF","adoEOF")

在头文件中加入上面这句话

下载安装Oracle 11.2 client

有安装包的,安装好后环境变量什么的都会设置好。

在不清楚自己该用什么字符串格式的情况下,我先新建一个txt文件,将后缀改为udl,右键打开方式中选择OLE DB core service 如下图

为我想连接Oracle的数据库所以要在提供程序里选择XXXX OLE DB Provider for Oracle.

完连接信息后确认测试连接成功,然后点确定

 再用文本文档打开该文件,得到连接字符串。

Provider=MSDAORA.1;User ID=system;Data Source=10.10.22.103:1521/iotdb;Persist Security Info=False

最终我连接Oracle的字符串如下:

  strConnect.Format("Provider=MSDAORA.1;Data Source=%s:%s/%s;Persist Security Info=False",csServer,csPort,csDBName);

然后再    m_pConnection->Open((_bstr_t)strConnect,(_bstr_t)csUser,(_bstr_t)csDBPass,adModeUnknown);///连接数据库

连接之前记得先调用初始化函数。

以上是关于mysql和oracle连接服务器问题的主要内容,如果未能解决你的问题,请参考以下文章

用vb.net怎么连接其他电脑上的oracle数据库

mysql是怎么连接数据库服务器

oracle的服务无法连接数据库

hive连接mysql mysql安装在哪里

安装了sqlyog,没有mysql文件夹和服务,sqlyog也连接不了怎么办?

怎么把oracle数据移植到mysql?