VB中远程数据库的访问

VB中远程数据库的访问
VB中远程数据库的访问

VB中远程数据库的访问(1)-数据连接

在VB中,用microsoft jet数据库引擎和数据访问对象DAO(data access object)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在VB中用DAO通过miscrosoft jet数据库引擎访问远程数据库的方法。

用DAO访问远程数据库大体上可以通过三步来实现,即数据连接、数据处理和断开连接。下面主要介绍数据连接和数据处理的具体操作。

一、数据连接

DAO一般通过链接远程表的方式来进行数据连接。这样,数据虽然驻留在远程数据源上,但在本地的microsoftjet数据库中可以存储与远程数据的永久性连接,同时缓存链接的表结构信息,从而在下一次访问该表时,不用再次从服务器中检索这些结构信息,加快了连接速度。一旦链接了一个表,该链接便会保留在各会话期间,直到连接断开。链接远程表的具体操作是:

用opendatabase方法打开将要包含该链接的本地microsoft jet数据库

用createtabledef方法在该数据库中创建一个新的tabledef对象

将tabledef对象的connect属性设置为一个合法的连接字符串,标识要访问的远程数据库类型、数据文件的路径以及用户名和远程数据源密码等。

将tabledef对象的sourcetablename属性设置为远程数据库中要访问的表的名称。

添加tabledef对象到tabledefs集合中。

实现链接远程表操作的过程如下:

public sub linktable(strdb as string, strrodb as string, strcn as string, strtdf as string, _linktdfname as string)

dim linktdf as new tabledef

set dbs = opendatabase(strdb)

https://www.360docs.net/doc/ca285432.html, = linktdfname

100

temptable = ucase(https://www.360docs.net/doc/ca285432.html,)

for i = 0 to dbs.tabledefs.count - 1

if ucase(dbs.tabledefs(i).name) = temptable then

if msgbox(linktdfname + " 已存在,是否删除?", _

vbquestion + vbyesno) = vbyes then

dbs.tabledefs.delete https://www.360docs.net/doc/ca285432.html,

exit for

else: msgbox " 重新输入新表名"

linktdfname = inputbox(" 新表名")

goto 100

end if

end if

next i

set linktdf = dbs.createtabledef(linktdfname) ’ 链接远程表linktdf.connect = ";database=" + strcn

linktdf.sourcetablename = strtdf

dbs.tabledefs.append linktdf

end sub

上述过程用来实现远程表的连接,它有5个参数,其中strrodb是要访问的远程数据库名(包括路径);strtdf是该数据库中的表名;strdb是要链接的本地数据库(包括路径);linktdfname是本地数据库的一个新表名,用来建立远程表的链接;strcn是指定连接信息的字符串。需要特别注意的是,除了在访问远程microsoft jet数据库时,连接字符串要以分号(;)开头外,指定连接信息的字符串都必须以所访问的远程数据库类型开头。DAO可以访问的远程数据源有以下三类:

.microsoft jet数据源,如:access数据。

.iisam(可安装的索引化顺序访问方法)格式数据源,如:foxpro、paradox、dbase数据。

.odbc数据源,如:sqlserver数据、oracle数据。

例如:设网络服务器名为server,共享目录为c:\sales的foxpro3.0数据库,连接字符串应为

strcn="foxpro3.0;database=\\server\c$\sales\region1"

此外,DAO通过microsoft jet数据库引擎访问远程数据时,还可以用opendatabase方法直接打开远程表。在本地数据库中并未存储与远程数据源建

立连接所需要的信息。如果使用链接方式访问数据,则不必在每次会话开始时提供连接信息,从而可以提高效率。

VB中远程数据库的访问(2)-数据处理

二、数据处理

数据连接建立后,可以用openrecordset方法打开一个记录集,并可用dbgrid控件和data控件方便地浏览整个记录集。如果使用表类型(table-type)记录对象,则对应的是一个实际存在的数据库表,在多用户环境下,其它用户对数据的修改会立即反映到表中;如果使用动态集类型(dynaset-type)记录对象,则对应的既可以是一个表中全部记录,又可以是一个查询的结果,并且可以更新记录集中的记录;如果使用快照类型(snapshot-type)记录对象,则对应的可以是表中的全部记录,也可以是一个查询结果,但不能进行记录的增加、删除和修改操作。此外,还可以建立其它类型的记录对象,如仅向前型(forward

only-type)记录对象和动态型(dynamic-type)记录对象。

下面是打开动态集记录对象并显示记录的过程:

public sub rst_display(strdb as string, strrst as string, strform as form)

set dbs = opendatabase(strdb)

set rst = dbs.openrecordset(strrst, dbopendynaset)

strform!data1.databasename = https://www.360docs.net/doc/ca285432.html,

strform!data1.recordsource = https://www.360docs.net/doc/ca285432.html,

strform!data1.refresh

strform!dbgrid1.rebind

end sub

上述过程有三个参数,其中strdb用来指定本地数据库名(包括路径),linktdfname是在本地数据库中新建的链接远程表的表名,strform是网格控件和数据控件所在的窗体名。调用此过程可以基于新表建立一个动态集类型的记录对象,并可在网格中浏览各个记录。

断开连接可以通过关闭应用程序或设置连接超时来实现。注意:如果对数据库对象使用close方法,则由于在miscrosoft jet数据库引擎内部缓存了连接,实际上连接并未取消。

VB中远程数据库的访问(3)-应用举例

三、应用举例

编写如下事件过程:

private sub cmdadd_click() ’ 添加记录子过程

on error goto errhandler

with rst

.addnew

for i = 0 to .fields.count - 1 ’ 遍历记录集中的每个字段

’ 在输入框中输入各字段的数据

.fields(i).value = inputbox

(" 输入记录信息" & vbcr + " 字段名:" + .fields(i).name)

next i

.update

end with

data1.refresh

dbgrid1.rebind

errhandler: ’ 错误处理

select case err

case 3022, 3421

msgbox (error + vbcr + " 输入无效")

exit sub

case else

response = 0

exit sub

end select

end sub

private sub cmddel_click() ’ 删除记录过程on error goto errhandler

begintrans ’ 事务处理

with data1.recordset

if .bof and .eof then exit sub

’ 如果没有记录,退出过程

.delete ’ 删除

if .bof and .eof then

’ 如果没有记录,退出过程

exit sub

elseif .eof then .movelast

’ 如果删除的是最后一条记录,光标移至最后一记录else: .movenext

’ 移至下一条记录

end if

end with

if msgbox(" 确实要删除这一记录?",

vbquestion + vbyesno) = vbyes then

committrans ’ 确认

data1.refresh

else

rollback ’ 撤消改动

data1.refresh

end if

errhandler: ’ 错误处理

select case err

case 3021 ’ 无当前记录

msgbox (" 无当前记录,请选择要删除的记录")

exit sub

case else

msgbox (error)

exit sub

end select

end sub

private sub cmdend_click()

end ’ 结束应用程序

end sub

private sub cmdmodify_click()

dbgrid1.allowupdate = true ’ 允许修改

end sub

privatev sub cmdlink_click()

form1.hide

form2.show

end sub

private sub dbgrid1_aftercolupdate(byval colindex as integer) ’ 数据修改后触发该事件

on error goto err1

data1.refresh

err1:

select case err

case 0

response = 0

case else

exit sub

end select

end sub

private sub dbgrid1_beforecolupdate

(byval colindex as integer, oldvalue as variant, cancel as integer)

’ 数据修改前触发该事件

on error goto errhandler:

begintrans

if msgbox(" 确实要修改这一内容?", vbquestion + vbyesno) = vbyes then

committrans

else

rollback

data1.refresh

end if

errhandler:

select case err

case 0

response = 0

case else

msgbox (error)

exit sub

end select

end sub

private sub form_load()

’ 在窗体装入时,网格中的数据不可添加,修改

dbgrid1.allowaddnew = false

dbgrid1.allowupdate = false

end sub

private sub form_resize()

on error resume next

’ 当窗体调整时会调整网格

dbgrid1.height = me.scaleheight - data1.height - cmddel.height - 30

end sub

在工程中添加一个窗体,在窗体上画6个标签,1个命令按钮(标题为“ 确认”,名称为cmd 确认),3个文本框和1个组合框。

在窗体的声明部份输入以下代码:

’ 声明窗体层变量

dim rodbs as database

dim strdb as string, strrodb as string, strcn as string, strtdf as string

dim linktdfname as string

编写如下事件过程:

private sub cmdOK_click()

on error goto errhandler:

strdb = text2.text

’ 本地数据库名及路径

linktdfname = text3.text

’ 本地数据库中新建的链接远程表的表名

strcn = strrodb ’ 连接字符串

strtdf = combo1.text ’ 指定远程数据库中要访问的表’ 调用linktable 过程

call linktable(strdb, strrodb, strcn, strtdf, linktdfname) ’ 调用rst_display 过程

call rst_display(strdb, linktdfname, form1)

form2.hide

form1.show

form1.caption = " 远程数据:" + strcn + "-" + strtdf

’ 显示“ 添加”,“ 删除”,“ 修改” 控件

form1.cmdadd.visible = true

form1.cmddel.visible = true

form1.cmdmodify.visible = true

errhandler:

select case err

case 0

response = 0

case else

msgbox (error + vbr + " 重新输入")

exit sub

end select

end sub

private sub combo1_gotfocus()

strrodb = text1.t ext ’ 指定远程数据库名及路径set rodbs = opendatabase(strrodb) ’ 打开远程数据库’ 删除combo1 中的内容

if combo1.listcount >= 1 then

for i = combo1.listcount - 1 to 0 step -1

combo1.removeitem i

next i

end if

’ 把数据库中的表名加到combo1 中

for i = 0 to rodbs.tabledefs.count - 1

combo1.additem rodbs.tabledefs(i).name

next i

end sub

mysql远程连接授权命令

新使用MySQL,说起来是个简单的事情,但是却费了些周折: 1、登陆服务器端,进入命令行,windows cmd; 2、设置用户、密码让指定的IP访问:mysql -u root -p 或安装的快捷方式进入:MySQL Command Line Client,使用grant命令: grant 权限1,权限2,…权限n on 数据库名称.表名称to 用户名@用户地址identified by '连接口令'; 例子: mysql>grant select,insert,update,delete,create,drop on mydb.mytable to lzpddd@192.168.1.88 identified by 'mypassword'; 给来自192.168.1.88的用户lzpddd分配可对数据库mydb的mytable表进行select,insert,update,delete,create,drop等操作的权 限,并设定口令为'mypassword'; mysql>grant all privileges on *.* to lzpddd@192.168.1.88 identified by 'mypassword'; 给来自192.168.1.88的用户lzpddd分配可对所有数据库的所有表进行所有操作的权限限,并设定口令为'mypassword'; mysql>grant all privileges on *.* to lzpddd@'%' identified by 'mypassword'; 给来自任何IP地址的用户lzpddd分配可对所有数据库的所有表进行所有操作的权限限,并设定口令为'mypassword'; 3、关闭服务器端防火墙或者开放3306端口(很重要); 4、客户端连接: 进入命令行,windows cmd,连接: mysql -u 用户名-p密码-h 服务器IP地址-P 服务器端MySQL端口号-D 数据库名 注意: (1)服务器端口标志-P一定要大些以区别于用户-p,如果直接连接数据库标志-D也要大写; (2)如果要直接输入密码-p后面不能留有空格如-pmypassword;

MYSQL远程连接远程数据库表

MYSQL 链接远程的链接表(类似ORACLE的DBLINK) MYSQL 链接远程的链接表(类似ORACLE的DBLINK) 远程表: CREATE TABLE IF NOTEXISTS `category` ( `id` int(11) NOTNULLAUTO_INCREMENT, `category_id` int(11) NOTNULL, `name` varchar(20) NOTNULL, PRIMARYKEY(`id`) ) ENGINE=MYSAIM DEFAULT CHARSET=utf8; 本地建立链接表(映射10.10.10.133 app库的category表)的时候: CREATE TABLE IF NOT EXISTS `remotecategory` ( `id` int(11) NOT NULL AUTO_INCREMENT, `category_id` int(11) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) )ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://user:passwod@10.10.10.133:3306/app/category'; 注:表的结构一模一样,就是引擎不同,看红字FEDERATED 需要在 my.ini(WINDOWS) 或者my.conf(LINUX)的 [mysqld] 下面重新起一行, 在这一行加上federated 来激活FEDERATED 即可 FEDERATED是其中一个专门针对远程数据库的实现。一般情况下在本地数据库中建表会在数据库目录中生成相应的表定义文件,并同时生成相应的数据文件 (mysql 5.0.5以上的版本)

SQLSERVER2008开启远程数据库访问图解

SQL SERVER2008开启远程数据库访问图解moon.翘楚 2012-02-19 8:52 转载自zhangcheng1 最终编辑zhangcheng1 tag:sql server2008远程数据库,远程连sql,IP远程连SQL SERVER,1433端口映射 这篇文章不错,我试验了确实可以,moon.翘楚在这里再进行一下图文增补,让大家更加明白。 讲解SQL Server 2008开启远程连接 作者:blue1000出处:IT专家网论坛2010-06-23 07:00 sql server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置: sql server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置: 1,SQL Server Management Studio Express(简写SSMS) 2,SQL Server 配置管理器/SQL Server Configuration Manager(简写SSCM) 有两点要注意: 1,2005的外围应用配置器在2008中换了地方 2,有些设置生效需要重启一下SQL Server step 1: 打开SSMS,用windows身份连接数据库,登录后,右键选择“属性” step 2: 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式 step 3: 选择“连接”,勾选“允许远程连接此服务器”,然后点“确定” step 4: 展开“安全性”->“登录名”->“sa”,右键选择“属性” step 5: 左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码 step 6: 选择“状态”,选中“启用”,点击“确定” step 7: 右击数据库选择“方面”

用PLSQL远程连接Oracle数据库

PL/SQL Developer 远程连接Oracle数据库 1、配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安 装了oracle的机上拷贝一个(tnsnames.ora文件)放在指定目录下,因为我已安装oracle,所以直接配置该文件。 # tnsnames.ora Network Configuration File: D:\Oracle11g\product\11.2.0\dbhome_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.25.224)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) orcl为远程Oracle数据库的实例名,IP地址和端口也要配置正确。 2、配置完成后,Oracle客户端应该可以连接到远程Oracle 数据库上。

SQL2000数据库实现远程连接

SQL 2000数据库怎么实现远程连接 SQL Server 2000无论是个人版、企业版还是标准版,只要细版本在8.00.1760以下,均不提供远程数据库连接,即使服务器端工具和客户端工具的设置均有TCP/IP设置和数据库连接属性也设置了RPC远程连接,仍然不能实现远程连接。该怎么解决呢? 解决方案如下: 首先,需要打SP4补丁,该补丁包含了以前sp1、2、3的补丁,安装此补丁后一般要重新启动计算机,再进行远程连接就可以了,如再企业管理器可远程注册服务器、查询分析可连接远程服务器、ODBC可连接远程服务器。 要点: 1.确认服务器端SQL服务端口号是否为:1433 2.如果不是1433,配置客户端 3.建立服务器端登录帐号,确保角色及管理数据库 一、查看服务器端情况 1. 看ping 服务器IP能否ping通。 这个实际上是看和远程sql server 服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 服务器的IP拼写正确。 2. 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是sql server 的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。 如果这一步有问题,应该检查以下选项。 1) 检查远程服务器是否启动了sql server 服务。如果没有,则启动。 2) 检查sql server服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。 3) 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。 事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏sql server服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变(具体方式见二:设置客户端网络实用工具)。

在Linux环境下启用MySQL数据库远程访问的方法

在Linux环境下启用MySQL数据库远程访问的方法 远程连接MySQL出于安全考虑,一般都关闭了远程访问,但有时候需要提供远程访问数据库的服务,今天由郑州网站建设给大家做个小教程作为参考: 第一步:修改https://www.360docs.net/doc/ca285432.html,f文件 使用文本编辑器去编辑MySQL服务器的配置文件https://www.360docs.net/doc/ca285432.html,f 如果你使用Debian Linux,文件位置在:/etc/mysql/https://www.360docs.net/doc/ca285432.html,f 如果你使用Red Hat Linux/Fedora/Centos Linux,文件位置在:/etc/https://www.360docs.net/doc/ca285432.html,f 如果你使用FreeBSD,文件位置在:/var/db/mysql/https://www.360docs.net/doc/ca285432.html,f 如果使用VI编辑,直接使用命令 # vi /etc/https://www.360docs.net/doc/ca285432.html,f 第二步:如果文件打开,按照下面内容进行 [mysqld] 确保skip-networking是被注释的,或者被删除,然后添加下面一行内容 bind-address=你的服务器IP

例如,你的服务器IP是65.55.55.2,然后需要配置例如如下的内容: [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = 65.55.55.2 # skip-networking .... .. .... 这里面 bind-address : 你需要绑定的IP地址. skip-networking :开启skip-networking 选项可以彻底关闭MySQL的TCP/IP连接方式,在一些文档中也提到在单机运行的MySQL 推荐开启该选项,现在看,不太靠谱。

Labview中远程数据库访问技术

摘要:介绍了在Labview中应用ADO技术访问本地和远程数据库的方案。对在局域网中以网络 共享方式访问远程Access数据库进行了详细介绍,最后给出了应用该方法开发的一个实例。关 键词:LabviewADO远程数据库引言Labview是美国NI公司开发的一种图形化编程语言,其主 要用于数据采集、仪器控制、过程监控等领域。Labview具有丰富的采集与分析函数库,在Labview环境下可以方便快捷地开发监控系统软件。现代监控系统一般构建于局域网内,且 摘要:介绍了在Labview中应用ADO技术访问本地和远程数据库的方案。对在局域网中以网络共享方式访问远程Access数据库进行了详细介绍,最后给出了应用 该方法开发的一个实例。 关键词:Labview ADO 远程数据库 引言 Labview 是美国NI公司开发的一种图形化编程语言,其主要用于数据采集、仪器控制、过程监控等领域。Labview具有丰富的采集与分析函数库,在Labview 环境下可以方便快捷地开发监控系统软件。现代监控系统一般构建于局域网内,且监控系统自身也是企业生产管理系统的一个子系统,因此不可避免地要访问本地或远程数据库。Labview开发版中并没有提供直接与通用数据库接口的工具,但可以 通过以下方法解决:购买NI公司开发的附加软件工具包;利用其它语言如VC++编写DLL访问数据库;利用ADO控件访问数据库。[1]Labview支持Activex控件,与其它方法相比基于ADO技术构建本地或远程数据库访问接口不失为一种简单而又经济 的方法。 1 ADO技术简介 ADO(Activex Data Objects)是Microsot为OLE DB设计的应用层接口,它为一致的数据访问接口提供了良好的扩展性而不局限于单一的数据源。ADO接口编程模型中包括连接(connection)、命令(command)、参数(parameter)、 记录集(recordset)、字段(field)、错误(error)、属性(property)、集合(collection)、事件(event)等元素。其中connection、command、recordset是三个主体对象,parameters、fields、errors、properties、是四个集合对象。ADO的一般操作方式为:1 连接到数据源;2 指定访问数据源的命令;3 执行命令;4 将命令执行后产生的结果保存在缓存中;5 更新数据源。ADO接口继承了OLE DB的高速性,可以高速访 问本地或远程的数据源。 2在Labview 中使用ADO接口 在Labview 中使用ADO接口访问数据库一般包括以下几个步骤:建立ADO控件;连接到数据源;生成SQL命令;执行命令;关闭连接。具体步骤如图1 所示。 2.1建立ADO控件 在前面板控件模板中选择Activex子模板单击Automation Refnum项,右键单击Select Activex Class的Browse从类型库中选择 Microsoft Activex Data Objects 2.7 library Version 2.7,之后可以向框图程序中加 入connection、command、recordset等对象。 2.2连接到数据源 首先在Diagram中单击鼠标右键,从Function模板选择communication 子模板,从中选择Activex项的Automation Open 与ADODB_Connection相连即 可打开连接。接着同样从communication子模板的Activex项中选择 Invoke node (方法节点)并与Automation Open 相连,在其上单击右键选择methods项的Open方法即出现图1中所示的节点。其中“Open”表示该节点为打开“连接对象”,“ConnectionString”是连接到数据源的字符串,“UserID”和“Password”

远程访问数据库

远程访问数据库 对于oracle数据库,可以通过建立dblink的方式,在一个数据库中访问获取另一个数据库的数据,具体实现方式如下: 1.建立DATABASE LINK: 在本机数据库中执行如下语句: Create public database link ERPDATABASE–远程数据库连接名 Connectto apps identifiedby apps Using '(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.0.100) (PORT = 1521) ) ) (CONNECT_DATA = (SERVICE_NAME = ERPTEST) ) ) ' ; 蓝色部分可以从数据库安装目录\product\10.2.0\db_1\network\ADMIN的路径下找到,拷贝tnsnames.ora文件中的对应信息。 以上连接信息可以用oracle客户端的Net Manager工具生成:

2.查看数据 成功之后,可以在本机数据库中查看ERPTEST数据库的数据: 其中需要注意的有: 1)ygfm为数据库用户名,因为dblink的连接信息中使用的apps用户是数据库dba,所以可以方位ygfm的数据,这里要注意的是apps需要有ygfm的访问权限。 2)注意需要使用’ @ERPDATABASE’标识远程数据库。 3.建立同义词 可以建立同义词减少输入: 执行以下语句: Create synonym ygfm_analyse_base for ygfm.ygfm_analyse_base@ERPDATABASE; 查询: select * from ygfm_analyse_base; 需要注意的是:这里建立的DATABASE LINK 不同于tnsnames.ora文件中的连接信息,这里是在数据库中保存连接信息,而tnsnames.ora文件中的连接信息是在数据库层面之上的。

开启mysql的远程连接的方法

开启mysql的远程连接的方法 web与mysql数据库分离开来是一个不错的选择,避免因为大量的数据库查询占用CPU而使web资源不足,同时可以使web 服务器的资源尽最大的提供浏览服务,而数据库服务器单独的只处理数据库事物。 适用范围:拥有独立主机权限。 硬件配置:两台服务器,至于具体服务器硬件配置就不在本文范围内了。其中:A为web服务器(假设ip为:192.192.192.192)、B为mysql数据服务器(假设ip为:168.168.168.168) 着手动作: 1.在web服务器A配置好web服务。假设web服务器的IP为:19 2.192.192.192 2.在数据库服务器B安装好mysql服务。 3.现在新版的mysql一般默认都不允许远程连接的。需要建立远程连接账号才可以。 以命令行方式使用root账号进入mysql。 mysql -uroot -ppass

选择进入mysql数据库 use `mysql`; 查看所有存在的账号和地址。 SELECT `Host`,`User` FROM `user`; 比如我的就是: +-----------+------+ | Host | User | +-----------+------+ | localhost | | | localhost | pma | | localhost | root | +-----------+------+ 3 rows in set (0.00 sec) 也就是说,存在三个只允许本地连接的(localhost)账号,分别为root、pma、空用户。 现在决定让root具有上面那个web服务器A的远程链接的权限,

MySQL数据库远程连接开启方法

MySQL数据库远程连接开启方法 发布:dxy 字体:[增加减小] 类型:转载 有时候需要远程连接mysql数据库,默认是不可以的,大家可以参考下面的方法,解决下。 第一中方法:比较详细 以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是 MySQL 数据库开启远程连接的时机操作流程。 1、d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL>select host, user from user; 2、MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypas sword' WITH GRANT OPTION 予任何主机访问数据的权限 3、MySQL>FLUSH PRIVILEGES 修改生效

4、MySQL>EXIT 退出MySQL服务器 这样就可以在其它任何的主机上以root身份登录啦!

以上的相关内容就是对MySQL 数据库开启远程连接的介绍,望你能有所收获。 第二种方法: 1、在控制台执行mysql -u root -p mysql,系统提示输入数据库root用户的密码,输入完

成后即进入mysql控制台,这个命令的第一个mysql是执行命令,第二个mysql是系统数据名称,不一样的。 2、在mysql控制台执行GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDE NTIFIED BY ‘MyPassword' WITH GRANT OPTION; 3、在mysql控制台执行命令中的‘root'@'%' 可以这样理解: root是用户名,%是主机名或 IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的I P地址;'MyPassword'是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,GRANT具体操作详情见:http://dev.mysql.c om/doc/refman/5.1/en/grant.html 4、不放心的话可以在mysql控制台执行select host, user from user; 检查一下用户表里 的内容 您可能感兴趣的文章: ?mysql 远程连接数据库的方法集合 ?PHP远程连接MYSQL数据库非常慢的解决方法 ?解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)

sql 2005 error 40远程连接错误

sql 2005 error 40远程连接错误 数据库 2010-01-22 19:43:38 阅读432 评论0 字号:大中小 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息。在使用任何程序连接到 SQL Server 时都可能会发生此问题。例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。 如果没有将 SQL Server 2005 配置为接受远程连接,则可能会发生此问题。默认情况下,SQL Server 2005 Express Edition 和 SQL Server 2005 Developer Edition 不允许远程连接。若要配置 SQL Server 2005 以允许远程连接,请完成以下所有步骤: ?在您要从远程计算机连接到的 SQL Server 实例上启用远程连接。 ?打开 SQL Server Browser 服务。 ?配置防火墙以允许与 SQL Server 和 SQL Server Browser 服务相关的网络通讯。 本文介绍如何完成这些步骤中的每一步。 更多信息 若要在 SQL Server 2005 实例上启用远程连接并打开 SQL Server Browser 服务,请使用 SQL Server 2005 外围应用配... 若要在 SQL Server 2005 实例上启用远程连接并打开 SQL Server Browser 服务,请使用 SQL Server 2005 外围应用配置器工具。在安装 SQL Server 2005 时会安装外围应用配置器工具。 为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接 必须为要从远程计算机连接到的每个 SQL Server 2005 实例启用远程连接。为此,请按照下列步骤操作: 1.单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和 “配置工具”,然后单击“SQL Server 外围应用配置器”。

mysql数据库不能远程连接

1130 - Host XXX is not allowed to connect to t his MySQL server。 1.在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。 2.在安装Mysql数据库的主机上登录root用户: mysql -u root -p

3.依次执行如下命令: https://www.360docs.net/doc/ca285432.html,e mysql; 2. 3.select host from user where user='root'; 可以看到当前主机配置信息为localhost. 4.将Host设置为通配符% Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果 Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置; update user set host = '%'where user ='root'; Host设置了“%”后便可以允许远程访问。 5.Host修改完成后记得执行flush privileges使配置立即生效 flush privileges; 6.使用navicat 成功连接至mysql

如何实现远程连接数据库服务器

如何实现远程连接数据库服务器 (SQL Server 2005 + Visual Studio 2005) (1)配置服务器端 打开“SQL Server 外围应用配置器”--》选择“服务和连接的外围应用配置器”–》选择“服务器端(SQLEXPRESS)”--》点击“远程连接”,选择“本地连接和远程连接”,选择“同时使用TCP/IP和Named pipes”; 启动“SQL Server Browser”,选择自动;

(2)进行服务器端网络配置 打开“SQL Server Configuration Manager”--》点击“SQL Server 2005网络

配置”–》点击“SQLEXPRESS的协议”--》确保“Named Pipes”和“TCP/IP”都启用–》右键点击“TCP/IP ”选择属性,选择“IP地址”,设置“TCP动态端口”为空,设置“TCP端口”为1433;

(3)进行客户端网络配置 打开“SQL Server Configuration Manager”--》点击“SQL Native Client配置” –》点击“客户端协议”--》确保“Named Pipes”和“TCP/IP”都启用–》右键点击“TCP/IP ”选择属性,选择“协议”,确认“默认端口”为1433;

(4)设置SQL Server服务器实例 右键点击服务器实例–》选择“属性”–》选择“连接”–》在“允许远程连接到此服务器”前打勾;

(5)防火墙设置 对系统中使用的防火墙(包括ESET和windows自带的防火墙),选择关闭,或者设置例外(允许某个程序或者某个端口) (6)检查客户端和服务器端是否连通,端口是否打开 telnet ip 1433 //ip即为服务器的IP地址,1433是sql server的默认端口,这

mysql远程表访问设置

使用MySQL FEDERATED存储引擎,没有对表的本地数据文件(比如,没有.MYD文件)。取而代之地,一个远程数据库存储那些正常地应该在表中的数据。这使得MySQL客户端API来读,删除,更新和插入数据的使用成为必要。数据取回被通过SELECT * FROMtbl_nameSQL语句来初始化。要读这个结果,通过使用mysql_fetch_row() C API 函数,行被一次取一个,然后从SELECT结果包中的列转换成FEDERATED处理器期望的格式。 基本流程如下: 1. SQL调用被本地发布 2. MySQL处理器API (数据以处理器格式) 3. MySQL客户端API (数据被转换成SQL调用) 4. 远程数据库-> MySQL客户端API 5. 转换结果包(如果有的话)到处理器格式 6. 处理器API -> 结果行或受行影响的对本地的计数 使用FEDERATED表的步骤是非常简单的。通常,你运行两个服务器,要么在同一个主机上,要么在不同主机上。(一个FEDERATED表使用其它被同一服务器管理的表也是可能的。虽然只有极少的点要这么做)。 首先,你必须在你想要用FEDERATED表访问的远程服务器上有一个表。假设,远程的表在FEDERATED数据库中并且被如下定义: CREATE TABLE test_table ( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '',

other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other) ) ENGINE=innodb DEFAULT CHARSET=utf8; ENGINE表选项可能命名任何存储引擎,该表需要不是一个MyISAM表。 接着,在本地服务器上为访问远程表创建一个FEDERATED表: CREATE TABLE federated_table ( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '', other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://xtsv:123456@192.168.1.203:3306/xt_dbs/test_table';

使用Navicat forMySql远程连接Linux 系统上的数据库

使用Navicat for MySql远程连接Linux 系统上的数据库 解决mysql"Access denied for user'root'@'IP地址'"问题1.问题说明: 在MYSQL 中,用远程软件登陆服务器,有时出现:Access denied for user 'root'@'localhost'出现这种问题,主要的原因就是权限配置的时候没有配置正确。 2.解决方法: 当用Linux的tty 登陆进MYSQL 时, mysql -u root -p 会提示你输入密码,输入正确的密码后正常登陆。 然后在提示符下,输入命令:show grants; 会出现root如下的权限表示: 此时,注意看那个“@”后面的,是localhost 意思是本机登陆,此时,如果你用远程登陆软件来登陆的话,会出现错误提示:Access denied for user 'root'@'IP地址'。IP地址那块是你远程机器的IP地址。也就是服务器在告诉你,当你用“IP地址”登陆时,是拒绝的,因为,MYSQL权限设置里并没有给你对应你IP地址登陆的权限。因为刚才的SHOW GRANTS;命令结果已经告诉你了,仅限本机登陆。

①改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql" 数据库里的"user" 表里的"host" 项,从"localhost"改称"%" Sql代码 mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; ②授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 Sql代码 mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; mysql>FLUSH PRIVILEGES; 例如:如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码 Sql代码 mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; mysql>FLUSH PRIVILEGES;

远程连接access数据库的方法

前段时间很多人问远程(如通过互联网)连接access数据库的方法,最近写了个例子,与大家共享: 使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。)。分服务器和客户端两部分,服务器可以多用户同时连接。远程连接Access数据库有很多方法,我以前已经比较详细的回答过(见下面所列的5种方法),我现在这个例子属于其中的第3种方法(不需要使用RDS或Web服务器)。 ------------------------------------- 远程连接access数据库的几个方法: 1.建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器中mdb文件所在的Folder共享即可。ADO连接如下: oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ServerNameDatabaseFolderDatabase.mdb;Jet OLEDB:Database Password=databasepw;Persist Security Info=False" 2.把Database放在Web Server上,使ADO或RDO通过RDS(Remote Data Service)及IIS来实现:如果服务器像上面Jave大侠说那样设置了ODBC DSN的话: oConn.Open "Provider=MS Remote;" & _ "Remote Server=http://myServerName;" & _ "Remote Provider=MSDASQL;" & _ "DSN=AdvWorks;" & _ "Uid=myUsername;" & _ "Pwd=myPassword" 如果设置的是OLE DB Provider 的话: oConn.Open "Provider=MS Remote;" & _ "Remote Server=http://myServerName;" & _ "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:somepathmydb.mdb", _ "admin", "" 3.自己编写服务器程序,通过TCP/IP,传递Recordset。 4.使用第三方控件,如:ADO Anywhere或UDAParts RDB等。 5.使用XMLHTTP -------------------------------------- 6:补充: CString ConfigurationDB = "//192.168.7.204/ddd/HTNAS.mdb"; 附远程连接SQL Server的方法:

mysql给root开启远程访问权限,修改root密码

我们可以按照下面的步骤修改: 1, 登录Mysql-Server 连接本地mysql (默认只允许本地连接) 2, 修改Mysql-Server 用户配置 mysql> USE mysql; -- 切换到 mysql DB Database changed mysql> SELECT User, Password, Host FROM user; -- 查看现有用户,密码及允许连接的主机 +------+----------+-----------+ | User | Password | Host | +------+----------+-----------+ | root | | localhost | +------+----------+-----------+ 1 row in set (0.00 sec)

mysql> -- 只有一个默认的 root 用户, 密码为空, 只允许 localhost 连接 12 mysql> -- 下面我们另外添加一个新的 root 用户, 密码为空, 只允许 192.168.1.100连接 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION; mysql> -- @'192.168.1.100'可以替换为@‘%’就可任意ip访问,当然我们也可以直接用 UPDATE 更新 root 用户 Host, 但不推荐, SQL如下: mysql> -- UPDATE user SET Host='192.168.1.100' WHERE User='root' AND Host='localhost' LIMIT 1; mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 修改root密码

Linux下mysql实现远程连接的具体步骤

首先,明白一点,并不是mysql禁止远程连接,而是MYSQL的账号禁止远程连接。可能觉得我有点咬文嚼字了,不过我感觉分清这点还是很重要的。 默认情况下,所有账号都是禁止远程连接的。 (在安装MYSQL的时候,在设置ROOT密码那里有一个CHECKBOX,选中的话就开启了ROOT的远程登陆功能,默认是没被选中的) 利用 select * from https://www.360docs.net/doc/ca285432.html,er 查出所有的MYSQL用户,可以发现默认情况下,这些记录的host字段的值全都是localhost 这个host字段就是表示哪些机器可以利用此账号连接到本机的MYSQL。localhost当然就代表本机了。。所以默认情况下别的机器无法连接。 所以要想开启一个账号的远程连接,只要将这个账号所对应的host字段改成那个IP就行。 比如: update user set host = '192.168.230.2' where user='ninty'; 执行完此命令以后还要执行: flush privileges; 来刷新所有数据库用户的权限配置信息,让设置及时生效。 或者重启MYSQL。 将ninty这个账号的host改成192.168.230.2,这样192.168.230.2这台机器就允许通过ninty这个账号来连接到本机的MYSQL 不过用别的账号仍然是不行的。 将ninty的host改成192.168.230.2,就只有192.168.230.2这台机器可以通过ninty这个账号来连接到本机的MYSQL 其它的机器(包括本机)都无法进行连接。 如果想将一个账号设置成任何IP都可以登陆,将host改成 % 就行。 如果只能192.168.230这个网段的IP可以登陆,那就将host改成: 192.168.230.% 下面是一些常见的错误信息: ERROR 1130 (00000): Host 'AAAAA-8HK8AISO' is not allowed to connect to this MySQL server AAAAA-8HK8AISO应该是本机的机器名,当MYSQL服务器禁止本机使用相应的账号连接的时候,就会暴这个错误。 这时换一个允许本机去连的账号就可以啦。

如何远程访问SQL SERVER

如何远程访问SQL SERVER 作者:点击数:205 更新时间:10-04-13 远程连接sql server 2000服务器的解决方案 一看ping 服务器IP能否ping通。 这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。 二在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。如telnet 202.114.100.100 1433ITPUB个人空间通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。 如果这一步有问题,应该检查以下选项。 1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。 2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。 3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。 事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变。 4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他

相关文档
最新文档