如何配置sqlserver 设置远程访问
er远程访问数据库进行配置
团队间开发,需要使用同一个数据库服务器,所以大家必须都可以使用IP地址来访问数据库。
通常访问数据库的方式,有三种
1、直接访问本地数据库,在服务器名称里,输入“ " ,这个圆点。
2、直接访问本地数据库,在服务器名称里,输入本机名称
3、在本地或者在远端进行访问,在服务器名称里输入,SqlServer数据库所在电脑的IP地址。但需要一些配置。
配置步骤如下:
①给带有SQLServer的电脑配置ip地址
②关闭防火墙:控制面板→防火墙
③打开SQLServer配置管理工具
打开后将图中项目,(tcp/ip和Named Pipes)设为启动状态
双击Tcp/IP配置ip地址
④在SQLServer上,设置允许远程访问:在sa上右击,选择属性
⑤设置验证方式
右击数据库实例→点击属性→点击安全
设置为SQLServer和windows认证即可
首先检查SQL数据库服务器中是否允许远程链接。其具体操作如下:
(1)右击SQL Server 2008选项,选择SQL Server 2008 Management Studio:
(2)打开“服务器属性(Server Properties)” (右键连接名称-属性)
选择“允许用户对该服务器进行远程链接”选项后,检查是否问题已经排除。如果远程链接已经成功,该过程已经完成。若用户发现“提醒错误对话框”依然弹出,那么还需要做的是:
(二)检查SQL网络链接配置。其具体操作如下:
打开“SQL服务器配置管理”选项>打开“该节点的SQL服务器网络配置选项”>选择“微软SQL 服务器网络协议”选项(或用户的SQL服务器中为SQL服务器配置网络协议的选项,不同版本的SQL名称可能不同):
设置完成后重启sql服务(net stop mssqlserver net start mssqlserver)
确定“微软SQL服务器网络选项协议”中的TCP/IP协议对服务器来说是有效的。再次检查是否已经可以执行远程链接。若“错误提醒对话框”依然弹出,需要进一步检查SQL服务器防火墙选项。
(三)检查SQL服务器防火墙设置 (快捷步骤-直接关闭防火墙(不安全))
如
果在进行完上两步操作后,用户端计算机仍然无法远程链接到SQL服务器,用户需要做的是对SQL服务器防火墙进行重新配置。在进行这一步操作时,首先找到
SQL服务器上那个端口支持TCP/IP协议。用户可以在SQL服务器防火墙已经处于运行状态下,点击“TCP/IP协议”选择“属性”:
从
上图中可以看出,这台SQL服务器上支持TCP/IP协议的是1433端口。下一步要做的是在防火墙的配置中允许1433端口支持TCP/IP协议
即可。如果服务器上运行的是Windows
7操作系统,其配置步骤为(其他微软操作系统的做法类似),打开“控制面板”选择“Windows防火墙”选项:
选择“高级设置”后,在右边菜单栏中找出“具有高级安全选项的Windows防火墙”并将其打开。打开后会发现在左边菜单栏中有“入站规则(Inboud Rules)”选项。将该选项打开,并在右边菜单栏中选择“新建规则(New Rule)”选项:
打开“新建规则”选项后,利用“新内置绑定规则向导”为1433端口配置“内部绑定协议”配置为适用于TCP/IP协议即可。(前提是,需要完成该步骤以前所述的所有步骤),根据下面的几幅图为1433端口配置适用于1433端口即可:
以上全部都没问题了之后打开SQL2008,输入远程服务器名或IP、登录名及密码就可以连接到远程服务器上了。
三种解决方法:
1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2、授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为19216816的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON TO 'myuser'@'19216813'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES
使修改生效,就可以了
第三种方法:
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON TO 'root'@'%'WITH GRANT OPTION
//赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦。
1、远程连接无法使用服务器名称访问,需要使用服务器IP地址+,+端口号如:1010101,5122 ,中间为半角逗号,如果用默认1433端口,“,端口号”可以省略。
2、登录用户,只能使用SQL身份验证。
3、如果是局域网内服务器,还需要路由设备,设置端口转向或者是虚拟服务器:
类似图中的设置,只要设置外部端口,内部端口,内部ip地址。
4、如果是动态IP的宽带,还需要类似花生壳的ip地址转向,主要作用是在公网IP改变时,不需要通知需要连接服务器的用户。
5、服务器上远程登录要打开,在服务器属性页面的连接选项卡中如图:
三种解决方法:
1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2、授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为19216816的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON TO 'myuser'@'19216813'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES
使修改生效,就可以了
第三种方法:
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON TO 'root'@'%'WITH GRANT OPTION
//赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦。
做端口映射,在代理服务器上安装端口映射工具,例如PortMap。然后进行配置,把代理服务器的数据库端口映射到数据库服务器的数据库端口上。例如sqlserver是1433,oracle是1521
这样你访问代理服务器的数据库端口就等于访问数据库服务器的对应端口了。
为了更加安全,你还可以在客户端上设置使用非默认的端口访问代理服务器,然后在代理服务器上把你指定的端口映射到数据库服务器的数据库端口。比如在代理服务器上把8000端口映射到服务器1433端口,然后在客户端上配置为使用8000端口来访问数据库。这样你就可以通过代理服务器的8000端口来连接sqlserver数据库了。
另外,也可以不用代理服务器,直接用路由器做端口映射。
0条评论