前提是服务器的mysql上有该用户,以及对应的IP
可登入mysql服务器上执行
grant all on test to 用户名@‘客户机IP’ identified by '密码' ;
flush privileges; #刷新权限表,让所做修改生效
上面指令的意思是 将test这个数据库的全部内容以及全部的 *** 作权限赋权给从特定IP上登入到本服务器的用户。由以下几个原因:
1数据库引擎没有启动
有两种启动方式:
(1)开始->程序->Microsoft SQL Server 2008->SQL Server 2008外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;
(2)可打开:开始->程序->Microsoft SQL Server 2008->配置工具->SQL Server Configuration Manager,选中SQL Server 2008服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;
使用上面两种方式时,有时候在启动的时候可能会出现错误[/b],不能启动,这时就要查看"SQL Server 2008配置管理器"中的SQL Server 2008网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止然后再执行上述一种方式 *** 作就可以了。
2进行远程连接时,是否已允许远程连接
SQL Server 2008 在默认情况下仅限本地连接我们可以手动启用远程连接在上面第一种方式中,找到Database Engine,单击"远程连接",在右侧将"仅限本地连接(L)"改为"本地连接和远程连接(R)",并选中"同时使用TCP/IP和named pipes(B)"
3如果是远程连接,则还要查看连接数据库的语句是否正确,登录账户是否正确,密码是否正确等
我在一次局域网内连接数据库时,就要因为连接字符串出了问题,在局域网内一台机子连接另一台机子上数据库时,把Data Source=装有数据库的另一台机子的IP我在连接数据库时总是出现上面的错误,查了好长时间,后来发现,IP没有正确到传到连接字符串,原来我在连接时,使用的是本地,即127001,输入的IP没有传到连接字符串设置mysql服务允许外网访问,修改mysql的配置文件,有的是myini,有的是mycnflinux
1:设置mysql的配置文件
/etc/mysql/mycnf
找到 bind-address =127001 将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/initd/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为1921681102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON TO 'myuser'@'1921681102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
1、右键计算机,点击管理。
2、如图找到SQL Server配置管理器。
3、如图找到SQL Server网络配置下的MSSQLSERVER,然后把TCP/IP状态改为启用。
4、打开SQL server数据库,按照图进行 *** 作,然后点击连接,那么就可以连接到别人(或自己)的数据库
mysql -u用户名 -h主机名 -p前提是服务器的mysql上有该用户,以及对应的IP
可登入mysql服务器上执行
grant all on test to 用户名@‘客户机IP’ identified by '密码' ;
flush privileges; #刷新权限表,让所做修改生效
上面指令的意思是 将test这个数据库的全部内容以及全部的 *** 作权限赋权给从特定IP上登入到本服务器的用户。
sqlserver
2000无论是个人版、企业版还是标准版,只要细版本在8001760以下,均不提供远程数据库连接,即使服务器端工具和客户端工具的设置均有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
202114100100
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,在客户端连接时必须作相应的改变(具体方式见
二:设置客户端网络实用工具)。
4)
如果服务器端 *** 作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,通常在测试时可以直接关掉windows防火墙(其他的防火墙也关掉最好)。(4、5步我没有做就成功了)
5)
检查服务器是否在1433端口侦听。如果sql
server服务器没有在tcp连接的1433端口侦听,则是连接不上的。检查方法是在服务器的dos或命令行下面输入
netstat
-a
-n
或者是netstat
-an,在结果列表里看是否有类似
tcp
127001
1433
listening
的项。如果没有,则通常需要给sql
server
2000打上至少sp3的补丁。其实在服务器端启动查询分析器,输入select
@@version
执行后可以看到版本号,版本号在802039以下的都需要打补丁。
如果以上都没问题,这时你再做telnet
服务器ip
1433
测试,将会看到屏幕一闪之后光标在左上角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析器连接了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)