两个办法
(1)给他一个外网ip
(2)让一台既能连接外网也能连接数据库的电脑做转接,然后远程操作。
不过以上两个办法风险都很大,自己把握。
② 如何访问 外网mysql数据库
设置mysql服务允许外网访问,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.
1:设置mysql的配置文件
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/init.d/mysql restart;
2:登录mysql数据库:mysql -u root -p
mysql> use mysql;
查询host值:
mysql> select user,host from user;
如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
或者也可以执行:
mysql>grand all privileges on *.* to root@'%' identifies by ' xxxx';
其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
‘%':表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
后面到‘xxxx'为root 用户的password;
举例:
任意主机以用户root和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
③ 怎么设置才能让外网ip可以访问mysql数据库
整体简介:
为了安全起见默认情况下Mysql数据库的监听地址是127.0.0.1,就是指本机下的程序才能访问。
监听地址是0.0.0.0 ,表示该mysql允许所有IP地址进行连接,这是允许远程连接的基础
监听地址是127.0.0.1,则代表该mysql只允许所在服务器本机连接,外网是无法连接的
所需工具原料:
Linux,apache,php,mysql
解决方法:
1. 用命令vi 编辑/etc/mysql/my.cnf 如图:
3. 重启服务
service mysqld restart
4. Linux服务器中执行如下命令可以查看: netstat -nutlp|grep mysql(只查看mysql的监听), netstat -tln(查看所有的监听)是否成功。
④ 如何设置外网访问sql2008数据库服务器
在设置外网访问SQL2008数据库 之前,首先必须保证局域网内访问SQL2008没有问题 。那么,我们先来看看局域网内访问SQL2008数据库需要哪些步骤和设置,才能做到在局域网内任何一台机器上输入SQL2008数据库IP地址和端口号即能访问。
1.SQL2008数据库端设置
通常一台机器装上SQL2008后,要实现局域网访问SQL2008只要几步。
1)打开SQL2008配置工具,步骤:【开始】—>【所有程序】—>【Microsoft SQL Server 2008】—>【Configuration Tools】—>【SQL Server Configuration Manager】;
2)在打开的配置界面,双击左边【SQL Server 网络配置】,可以看到本机安装的数据库实例的协议,一般有【SQL Express的协议】和【MSSQLSERVER】的协议,如果你安装时不是使用默认实例名,那么在这里你应该找到自己需要设置外网访问的数据库实例名,双击它;
3)此时,可以看到四个协议,一般启用前三个,禁用最后一个,即启用【shared memory】、【named pipes】和【TCP/IP】,禁用【VIA】;
4)启用【TCP/IP】后,顺便应该鼠标右键该协议属性,设置下开放的端口,在IP1-IP9中都可以设置成1433,【活动】和【已启用】都选择【是】,最后一个IPALL也可设置成1433;ok,这时必须在配置页面的SQL Server服务项下面重启服务器,才能使得设置生效,如果这样还不行,建议重启电脑。
5)可以关闭了配置工具了,接下来打开【SQL Server Manager Studio】,登入您的数据库,打开后在【对象资源管理器】找到你数据库服务器的根节点,鼠标右键,选择【方面】,在方面下拉菜单下选择【外围应用配置】,在下面找RomoteDacEnabled,设置为True,然后重启数据库;(这个选项在我的设置过程中貌似没有起到作用,不设置为True好像远程也能访问);
6)设置到这里基本上就可以实现局域网内访问SQL2008数据库了。如果还不行,请将X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\sqlservr.exe在windows防火墙中设置程例外,也将X:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe设置成例外,把1433端口也设置成例外。
⑤ 如何设置远程访问mysql数据库
一、连接远程数据库:
1、显示密码
如:MySQL 连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456”
C:/>mysql -h 192.168.5.116 -P 3306 -u root -p123456
2、隐藏密码
如:MySQL 连接本地数据库,用户名为“root”,
C:/>mysql -h localhost -u root -p
Enter password:
二、配置mysql允许远程链接
默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。本文提供了二种方法设置mysql可以通过远程主机进行连接。
一、改表法
在localhost登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改称"%"
例如:
#mysql -u root -p
Enter password:
……
mysql>
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
二、授权法
例如: 你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES
使修改生效,就可以了
常见问题:
1、在采用法二授权法之后,无法在本地登录mysql(如:#mysql -u root -p -h 192.168.5.116
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'loadb116' (using password: YES)
上例中loadb116是主机名.
解决方法:
1、这时可以使用:mysql -u root -p 登录,进入到mysql后。
mysql> grant all privileges on *.* to 'root'@'loadb116'
identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2、在本地使用ip地址登录
# mysql -u root -p -h 192.168.5.116
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 60
Server version: 5.1.45 MySQL Community Server (GPL)
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
⑥ 怎样设置才能允许外网访问MySQL
设置mysql服务允许外网访问,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.
1:设置mysql的配置文件
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/init.d/mysql restart;
2:登录mysql数据库:mysql -u root -p
mysql> use mysql;
查询host值:
mysql> select user,host from user;
如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
或者也可以执行:
mysql>grand all privileges on *.* to root@'%' identifies by ' xxxx';
其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
‘%':表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
后面到‘xxxx'为root 用户的password;
举例:
任意主机以用户root和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
⑦ 请问一下这是什么意思访问部分国外数据库要设置代理服务器,地址为proxy.gt.e.cn,端口为8080
具体看什么数据库 有的连接软件可以有设置代理设置,有的数据库管理是网页的直接设置浏览器的代理就可以了
⑧ 我用的是ACCESS数据库,我想远程访问这个数据库,怎么设置数据源啊
远程访问牵扯到安全机制不好弄,如果是局域网的话倒是可以:把数据库所在文件夹(假设为folder1)设为共享,那么数据库的路径为:\\ABC\folder1\mydb.mdb,其中ABC为数据库所在计算机名称或ip。如果是广域网,还是换成sql吧(oracle就算了,太大了)
⑨ 如何让外网访问数据库
并且须提供远程访问和1433口打开.
参考2005的.Sql Server 2005的1433端口打开和进行远程连接
如何打开sql server 2005 的1433端口
配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议
看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,
"已启用"改为"是"
配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP
选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"
SQL Server 2005 远程连接
配置TCP/IP属性.
Surface Area Configuration --> Database Engine --> Remote Connections --->Using TCP/IT
SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes)
SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes
-----------------------------------------------------------------------------------------
一般按如上即可.
其他说明见下:
sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器,微软的官方网站有
下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。
1. 开启sql2005远程连接功能,开启办法如下,
配置工具->sql
server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine
节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了.
2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下:
manage管理器->windows
Authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属
性>security>Sql server and windows Authentication方式同时选中.
3:设置一个Sql server方式的用户名和密码,具体设置如下:
manage管理器->windows Authentication>new query>sp_password null,'sa123456','sa'
这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式,
用户名为sa ,密码为:sa123456的用户进数据库了.
4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了,
(server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master";
其它版本,做如下设置
程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器—
1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项)
在下方选项
2、SQL Server Browser—服务(停止时只本机访问)
3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—网络连接协议-选择实例对应协议—启用(shard memory、Named Pipes、TCP\IP)
注: SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,
并提供计算机上安装的 SQL Server 实例的相关信息。
SQL Server 浏览器可用于执行下列三种操作:
浏览可用服务器
连接到正确的服务器实例
连接到专用管理员连接 (DAC) 端点
SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。
SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,
为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务。
⑩ 怎么设置才能让外网ip可以访问mysql数据库
1、首先检查mysql所在服务器的防火墙,如果限制了外网对3306端口的连接,那么放开限制
Linux服务器中执行
iptables -L 可以查看当前的防火墙规则
iptables -F 可以清空所有防火墙规则
2、确保mysql的监听地址是0.0.0.0
监听地址是0.0.0.0 ,表示该mysql允许所有IP地址进行连接,这是允许远程连接的基础
监听地址是127.0.0.1,则代表该mysql只允许所在服务器本机连接,外网是无法连接的
怎么知道mysql的监听地址是多少
Linux服务器中执行如下命令可以查看: netstat -nutlp|grep mysql
3、添加远程连接mysql的账号
此步骤是必须要操作的,mysql本身的用户只能在本机上连接数据库,外网连接的话,需要先添加远程用户并授权。
在mysql命令行模式下,或者phpmyadmin中执行sql语句添加远程连接用户
> grant all on *.* to root@'%' identified by '123456';
> flush privileges;
命令解释:
*.* 第一个*表示库,第二个*表示表; *.*对全部数据库的全部表授权,so.ok 表示只对so这个库中的ok表授权
root 表示要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的
'%' 表示允许远程连接的IP地址,%代表允许所有IP连接
只允许某个IP远程连接,可以写成'123.123.123.123'
只允许123.123.123.*这个网段远程连接,可以写成 '123.123.123.%' '123456' 是设置授权用户的连接密码
flush privileges; 代表立即刷新权限表,使添加的用户生效
上面三步都设置好了,就可以再次尝试远程连接mysql了。