MySql跨库视图问题

问题描述

有数据库databaseA,databaseB, 在databaseA中有张表tabA, 由于在项目中数据连接的权限问题,在J2EE项目中databaseB不能直接通过databaseA.tabA来访问tabA,需要在databaseB建跨库视图 viewA: select * from databaseA.tabA奇怪的问题发生了,用MySql客户端来访问viewA 都没有问题, 但是如果在J2EE项目中访问viewA就会抛出异常, databaseA.viewA 表或视图不存在, 一直找不到原因J2EE项目中是多数据库连接的, databaseA,databaseB 是在项目中创建2个连接的 问题补充:283433775 写道

解决方案

引用按你的方法试了,还真行, 可以告诉我为什么吗? 我也不知道原因,等下去官网找找看
解决方案二:
引用按你的方法试了,还真行, 可以告诉我为什么吗? 谢谢还是原理上得问题:你的mssql还是oracle,还是mysql,它是一个数据库的管理服务,里面有很多的库。可以理解为数据仓库。你的程序 j2ee ado.net也好,建立的连接,只能是对一个库,而不是对于整个数据仓库进行连接。既然你只能连接一个库比如databaseA,那么你只能访问你连接的那个库中的数据,库与库之间是完全隔离的,只有通过数据管理服务里面是可以互相通讯的。
解决方案三:
引用283433775 写道一个j2ee程序是可以同时连接多个数据库的,你对两个数据库databaseA和databaseB建立两个连接对象ConnectA和ConnectionB,这样你能通过程序来互相访问。两个连接都建立的 这个是不是可以理解为 oracle实例中有多个用户,多用户之间的互相访问呢?引用databaseA.viewA 表或视图不存在 这个异常提示的有奇快,试试看在databaseA下也建个视图 viewA select * from databaseA.tabA
解决方案四:
任何数据库都不支持跨库sql,你连接那个库,就只能sql访问哪个库的数据库表!
解决方案五:
应该是mysql的JDBC驱动无法支持跨库视图的访问,J2EE项目允许建多个数据源,你建两个数据源实现一下。
解决方案六:
这是肯定不行的,使用sql管理器当然可以通过databaseA.tabA来访问,但是在J2EE或者其他程序中,你连接的数据库,只是对databaseA或者databaseB这样的库进行连接,并非对整个数据库管理系统进行连接,所以你连接到databaseB就只能访问databaseB中的表,其他数据库比如databaseA数据库中的表是访问不到的。解决方法:一个j2ee程序是可以同时连接多个数据库的,你对两个数据库databaseA和databaseB建立两个连接对象ConnectA和ConnectionB,这样你能通过程序来互相访问。

时间: 2024-10-06 10:31:24

MySql跨库视图问题的相关文章

MySQL源码学习:MySQL中禁止跨库访问的实现

 先说一下这里"跨库"的意思:当前use的是db1, 仍可以使用select * from db2.table1来访问table1表. 这样使得我们需要访问同一个MySQL下的其他表时不需要多一次use,也使得多个库间的表join这样的操作成为可能. 1. 问题背景 但有些使用场景下是有禁掉这种功能的需求.比如一些开放应用托管服务,一般给一个应用指定使用一种类型的db, 多个用户使用相同的应用,但每个用户访问自己的db.由于有复用连接的需求,使得不能给连接的mysqluser作库权限限

分库分表的几种常见玩法及如何解决跨库查询等问题

在谈论数据库架构和数据库优化的时候,我们经常会听到"分库分表"."分片"."Sharding"-这样的关键词.让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战.让人感到担忧的是,他们系统真的就需要"分库分表"了吗?"分库分表"有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思路和建议. 垂直分表 垂直分表在日常开

SQL Server 跨库同步数据

原文:SQL Server 跨库同步数据 最近有个需求是要跨库进行数据同步,两个数据库分布在两台物理计算机上,自动定期同步可以通过SQL Server代理作业来实现,但是前提是需要编写一个存储过程来实现同步逻辑处理.这里的存储过程用的不是opendatasource,而是用的链接服务器来实现的.存储过程创建在IP1:192.168.0.3服务器上,需要将视图v_custom的客户信息同步到IP2:192.168.0.10服务器上的t_custom表中.逻辑是如果不存在则插入,存在则更新字段.  

thinkphp跨库操作的简单代码实例_php实例

实例一:配置config.php文件配置多个数据库配置 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp', 控制器中调用方法: $New = M('表名','前缀没前缀不填写','DB_CONFIG2'); 这里相当于从新连接了数据库远程跨库如果是在同一个服务器数据库可以直接切换: $User = M('数据库名.表名','前缀没有可不填'); 实例二:Model模型中的跨库以下代码填写到模型类中 protected $con

Access的跨库查询 (图)_漏洞研究

大家还记得mssql的跨库查询吧,其实在access中也可以实现2个数据之间的交叉查询.下面我就给大家介绍下access的跨库查询. 首先让我们看看在access里是怎样实现对mdb文件进行查询的,我们随便创建个空数据库,对数据库D:\daos\db\daidalos.mdb里的admin表的内容进行查询,SQL语句为: javascript:if(this.width>500)this.width=500" border=0> 查询后,成功返回目标数据库里表admin表里的内容:

求spring跨库事务注解方式

问题描述 使用mysql库,有一个facade需要操作两个service,这两个service会操作不同的DAO向不同mysql数据库插入记录,我想问一下,通过spring的注解方式如何实现跨库事务配置,在网上搜索了半天没有找到答案,请大神指点,不胜感激. 解决方案 你这属于有多个事务性资源的情况,要使用全局事务管理器,你可以往spring的jta事务管理器方向进行研究解决方案二:去了解下spring的jta事务管理.解决方案三:http://blog.csdn.net/z69183787/ar

SQL Server 跨库同步数据_MsSql

最近有个需求是要跨库进行数据同步,两个数据库分布在两台物理计算机上,自动定期同步可以通过SQL Server代理作业来实现,但是前提是需要编写一个存储过程来实现同步逻辑处理.这里的存储过程用的不是opendatasource,而是用的链接服务器来实现的.存储过程创建在IP1:192.168.0.3服务器上,需要将视图v_custom的客户信息同步到IP2:192.168.0.10服务器上的t_custom表中.逻辑是如果不存在则插入,存在则更新字段. create PROCEDURE [dbo]

thinkphp跨库操作的简单代码实例

实例一:配置config.php文件配置多个数据库配置 'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp', 控制器中调用方法: $New = M('表名','前缀没前缀不填写','DB_CONFIG2'); 这里相当于从新连接了数据库远程跨库如果是在同一个服务器数据库可以直接切换: $User = M('数据库名.表名','前缀没有可不填'); 实例二:Model模型中的跨库以下代码填写到模型类中 protected $con

与MySQL客户端库的链接问题

当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ccFKsdPa.o: 在函数`main'中: /tmp/ccFKsdPa.o(.text+0xb): 对`mysql_init'的未定义引用. /tmp/ccFKsdPa.o(.text+0x31): 对`mysql_real_connect'的未定义引用. /tmp/ccFKsdPa.o(.text+0x57): 对`mysql_real_connect'的未定义引用. /tmp