需要一些前提条件:
1、对方的主机能被连接(如在同一局域网内)
2、需要知道对方数据库IP、端口号、服务名
3、需要知道对方提供的管理数据库的用户名及密码
连接方法:
1、在本地的oracle安装目录,找到tnsnamesora文件,一般在~\oracle\product\1020\db_1\network\ADMIN目录下,如图:
2、用文本打开tnsnamesora文件,添加以下内容:
本地自定义实例名 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP或数据库主机名)(PORT = 数据库端口号))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 数据库服务名)
)
)
3、保存文件即可。
4、打开第三方工具,如plsq,输入对方提供的用户名及密码,选择新建的数据库链接即可。
你的问题说的太笼统了,
首先你要确定下是什么数据库,比如说oracle、还是mysql、还是sqlserver。不同的数据库连接失败的原因不一样。
其次,你要详细描述下连接失败的具体情况或截图。以ORACLE数据库为例,问题可能存在于客户端或者数据库服务端。
按照我说的方法进行逐一检查吧:
客户端:
①检查tnsnameora配置是否准确
②ping服务器IP是否通,telnet ip:1521端口是否通
服务端:
①检查数据库是否启动
②lsnrctl status 看监听是否启动
③看数据库防火墙及selinux是否关闭
上面只是简单的判断连接失败的办法,需要具体原因具体分析。
一 数据库链路的建立
数据库链路的建立语法一般是 CREATE DATABASE LINK [db_link_name] CONNECT TO[user_name] IDENTIFIED BY [password] USING [tns_name] ;
其中:
[DB_LINK_NAME] 是所要连接的数据库的服务名 也就是该数据库的真实名称(通常就是SID) [USRE_NAME] 是所要连接的用户名称 [PASSWORD] 是所要连接的用户的密码 [TNS_NAME] 是所要连接的数据库的服务命名 也就是在本机上建立的NET 服务命名
当使用当前用户做为连接者时 语法可以是 CREATE DATABASE LINK [db_link_name] CONNECT TO CURRENT_USER USING [tns_name] (某些情况下这种方法建立的数据库链路都未处于活动状态 不知道是不是语法有误 暂不推荐使用)
当使用已连接用户做为连接者时 语法可以是 CREATE DATABASE LINK [db_link_name]USING [tns_name]
要建立公共的数据库链路语法可以是 只要在CREATE后加PUBLIC关键字就可以了
假如你在init ora文件里的global_names = true只能用上面的方法 如果global_names =false [DB_LINK_NAME]不一定要是数据库的真实名称 可以是一个随意的名字 也就是说 当global_names = true时 数据库的每一个用户只能有一个数据库链路 而当global_names = false时 每一个用户都可以建立N多个链路 但一般情况下是没有意义的
二 数据库链路的使用
数据库链路的主要用途就是实现对远程数据库的访问 你可以通过数据库链路直接对远程数据库
的表进行读写 也可以在本地建立远程数据库的视图和同意词 另外在进行双机热备份时也要用到数据库链路
直接访问 SELECT FROM [user_name] [table_name]@[db_link_name];INSERT UPDATE DELETE等也同样适用
建立同义词 CREATE SYNONYM [user_name] [synonym_name] FOR [user_name] [table_name]@[db_link_name] ; 视图也是一个道理
由于双机热备是另一个复杂的问题 本文暂不赘述 如果想在两个数据库间实现几个表的同步 做一个双机太复杂 可以考虑用触发器来解决 在触发器中用以上方法引用远程表 对其进行插入 删除也可以做到同步
参考示例如下
数据库之间的链接建立在DATABASE LINK上 要创建一个DB LINK 必须先在每个数据库服务器上设置链接字符串
链接字符串即服务名 首先在本地配置一个服务名 地址指向远程的数据库地址 服务名取为将来你要使用的数据库链名
创建数据库链接
进入系统管理员SQL> *** 作符下 运行命令
SQL>create public database link beijing connect to scott identified by tiger using tobeijing ;
则创建了一个以scott用户和北京数据库的链接beijing 我们可以查询北京的scott数据:
SQL>select from emp@beijing;
这样就可以把深圳和北京scott用户的数据做成一个整体来处理
建立同义词 为了使有关分布式 *** 作更透明 ORACLE数据库里有同义词的对象synonymSQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp来替代带@符号的分布式链接 *** 作emp@beijing
lishixinzhi/Article/program/SQL/201311/16235
可以使用MySQL推出的MySQLConnector/Net组件,该组件是MySQL为ADONET访问MySQL数据库设计的NET专用访问组件,完成该组件后,需要在项目中引用这个组件,之后在程序中引用命名空间MySqlDataMySqlClient,即可开始进行连接MySQL数据库的 *** 作了,示例如下:
protected voidMySqlCon()
{
//数据库连接字符串跟连接SQLSERVER没有区别
string constr = "server=localhost;UserId=root;password=root;Database=test";
//下面使用MySql Connector/net提供的专用对象
MySqlConnection mycon = new MySqlConnection(constr);
myconOpen();
MySqlCommandmycmd = new MySqlCommand("select from users", mycon);
MySqlDataReader myreader = mycmdExecuteReader();
while (myreaderRead())
{
if (myreaderHasRows)
{
MessageBoxShow(myreaderGetString("email") );
}
}
myreaderClose();
myconClose();
您好,关于数据库无法连接的,大致总结了一下常见程序的数据库链接文件到底是哪一个:1 帝国系统网站数据库配置文件路径:web/e/class/configphp2 shopex系统网站数据库配置文件路径:web/config/configphp3 DEDECMS(织梦)系统网站数据库配置文件路径:web/data/ commonincphp4 php168系统网站的数据库配置文件路径:web/php168/mysql_configphp5 其他net的网站一般web/webconfig文件是数据库配置文件6phpcms系统的数据库配置文件路径:web/include/configincphp7discuz论坛系统的网站的数据库配置文件一般3个,分别为: web/uc_server/data/configincphpweb/config/config_globalphpweb/config/config_ucenterphp可以根据您具体的数据库信息修改一下数据库链接文件,当您数据库无法连接上的时候,(前提是先确定好我们数据库是正常的,也就是登陆您数据库高级管理看可以不可以进去,如果可以一般是数据库就没什么问题的了)。
以上就是关于oracle中怎样连接到数据库全部的内容,包括:oracle中怎样连接到数据库、数据库连接失败!怎么解决、数据库基础:教你轻松掌握数据库链路的建立和使用[1]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)