外网连接数据库连接不上

外网连接数据库连接不上,第1张

你所谓的外网连接,什么意思?(无论如何,把数据库放到外网上直接连接,都是非常不安全的)

是你从外网连接到内网的数据库服务器

此时你需要指定怎么访问内网的数据库ip和端口,一般是通过 nat 端口映射实现,那么做了吗?(此时就外网ip上的端口就不一定是1433了、内网机器的1433防火墙打开了吗?)

还是你从内网连接到外网的数据库服务器?

这种情况下一般不会有多少限制,看远端的服务器是如何配置的了。

按照如下步骤检查:

1. 确认数据库是否允许远程连接

http://zhidao.baidu.com/question/443193756.html?old=1&afterAnswer=1#here

2. 确认数据库服务是否正常启动

进windows的服务管理器,看带有sqlserver的服务

3. 确认数据库服务器的防火墙开通

同1

4. 确认客户端到服务器网络畅通

在客户机上的命令行执行 c:>ping 服务器名

5. 确认连接字符串正确,包括:主机名\实例名,端口

这个,看你的程序了吧。

6. 确认数据库是否允许混合登录方式

同1

/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;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9932774.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存