数据库无法远程连接
‘壹’ Mysql无法远程连接,要如何解决
原因是MySQL默认不支持远程连接,(那么phpMyAdmin为什么可以连接呢?那是因为phpMyadmin的环境是上传到服务器的,其本身访问数据库是相当于本机localhost访问的),如果想远程访问,可以使用下面的方法来解决。
远程连接mysql数据库时出现如下提示信息:“MYSQL CONNECT ERROR – 1130:Host ’202.43.**.**’ is not allowed to connect to this MySQL server”
在创建mysql账户时,限制连接账户远程登录。也就是说,除了当前mysql所在的安装服务器外,其他的ip(主机)都是不允许访问的,即使你的用户名和密码是正确的。这时候就要修改用户的访问权限。
首先是用root用户登录到mysql的安装主机,然后进入mysql:
mysql -u root -p
root是mysql的最高授权用户名,这时会提示你输入密码,正确输入密码后回车,进入mysql。回车
然后输入如下命令:
grant all on 数据库名.* to ‘数据库账户名’@’%’ identified by ‘密码’ with grant option;
回车
flush privileges;
回车
注意:上面的单引号不能省,数据库名.* 表示要开放的数据库下所有表,如果该连接的所有数据库都要开放,可以用 *.* 代替。
‘数据库账户名’@’%’ 这里表示要开放的账户,百分号表示在任何主机都允许访问。
如果以上两步均显示 “Query OK, 0 rows affected (0.00 sec)”,那么说明命令已经成功执行,现在就可以远程连接你的mysql数据库了。
(1).如果想赋予所有操作的权限
grant all on ... to 用户名......
(2).如果想赋予操作所有数据库的所有表的权限
grant ... on *.* to 用户名......
(3).如果想赋予某个数据库的所有表
grant ... on 数据库名称.'*' to 用户名...... ([ * ]两边一定要加单引号)
(4).如果想赋予某个数据库的某张表
grant ... on 数据库名称.表名 to 用户名......
(5).如果想任何客户端都能通过该用户名远程访问
grant ... on ... to 用户名@% ....... (要把IP地址改成[ % ])
(6).改完了以后一定要重新启动MySQL服务
用户会存到Mysql服务器上的user表中,所以下面的两种方法都可以解决这个问题:
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = ’%’ where user = ’root’;mysql>select host, user from user;
mysql>flush privileges;
2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’%’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’192.168.1.3’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;
如果还是无法远程我们可参考
1、Mysql的端口是否正确,通过netstat -ntlp查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。
2、检查用户权限是否正确。
例如:用户Tester,user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。
3、查看/etc/my.cnf中,skip-networking 是否已被注掉,需要注掉。
报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111)
4、查看iptables是否停掉,没关的情况下,无法连接。
通过:service iptables stop临时关闭。
报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)
另外,我们还可以通过配置http通道来使Navicat远程连接到数据库,这样做的好处是不需要前面繁杂的配置。在主机名IP地址那里填写LocalHost
用户名与密码一栏则填写你所在的数据库用户名与密码。
这时候还不能连接数据库的,需要通过Http通道的形式进行数据库连接。
点击连接属性标签栏中的Http,如下图所示:
勾选使用Http通道后,在通道地址一栏输入你的网址与后台文件地址。
‘贰’ mysql-front 无法远程连接mysql数据库
不允许远程连接这个数据库,你看下mysql端口是否打开,另外查看一下mysql是否允许远程连接
几个解决方案,自己看下
1.修改改mysql配置文件(/etc/mysql/my.cnf),注释以下行:
#bind-address
=
127.0.0.1
2.重启mysql数据库,对于ubuntu系统,执行如下命令
sudo
/etc/init.d/mysql
restart
3.以root用户登录mysql后,执行如下命令:
grant
all
privileges
on
*.*
to
root@’允许登录的远程机器ip’
identified
by
‘密码’
或者
grant
all
privileges
on
*.*
to
'myuser'@'%'
identified
by
'mypassword'
with
grant
option;
如果你想允许用户myuser从ip为168.160.12.50的主机连接到mysql服务器,并使用mypassword作为密码
grant
all
privileges
on
*.*
to
'myuser'@'168.160.12.50'
identified
by
'mypassword'
with
grant
option;
‘叁’ 如何处理数据库远程调用失败问题
第一种办法就是
打开控制面板,找到卸载程序,把”Microsoft SQL Server 2013(2012) Express LocalDB”卸载掉,然后打开SQL Server 配置管理器,就会显示正常使用。
2
第二种办法就是升级数据库
使用更高版本的数据库,或者升级SqlServer2008为SP1或者SP2。
3
第三种方法就是手动启动数据库服务项
方法如下:
右击“计算机”→“管理”→“服务”,找到SQL Server(MSSQLSERVER),右击,选择“启动”。此时登陆数据库不会有问题,但是重新启动系统后,问题会依旧存在的。
‘肆’ 为什么没法远程连接别人的数据库
第一中方法:比较详细
以下的文章主要介绍的是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 'mypassword' 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'@'%' IDENTIFIED BY ‘MyPassword' WITH GRANT OPTION;
‘伍’ sql server 2008无法远程连接
一、数据库引擎没有启动有两种启动方式:(1)开始->程序->MicrosoftSQLServer2008->SQLServer2008外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到DatabaseEngine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;(2)可打开:开始->程序->MicrosoftSQLServer2008->配置工具->SQLServerConfigurationManager,选中SQLServer2008服务中SQLServer(MSSQLSERVER),并单击工具栏中的"启动服务"按钮把服务状态改为启动;使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQLServer2008配置管理器"中的SQLServer2008网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了。二、进行远程连接时,是否已允许远程连接.SQLServer2008在默认情况下仅限本地连接.我们可以手动启用远程连接.在上面第一种方式中,找到DatabaseEngine,单击"远程连接",在右侧将"仅限本地连接(L)"改为"本地连接和远程连接(R)",并选中"同时使用TCP/IP和namedpipes(B)".三、如果是远程连接,则还要查看连接数据库的语句是否正确,登录账户是否正确,密码是否正确等.
‘陆’ 求教为什么连接不上远程数据库
通常都是通过TCP/IP协议来连接远程数据库。
首先要保持网络畅通,可以使用ping命令来进行测试网络是否连通,没有问题可以进行下一步:在客户端通过配置工具或者应用程序代码来设置服务器的地址、端口号、数据库名称等信息,此时客户端采用的工具或者编程语言不同,则配置方法也不同,每一种主流数据库产品都有图形化的客户端配置工具,可以直接使用,在里面填写好服务器相关信息,测试连接即可,下图就是SQL Server的配置工具。
‘柒’ MySQL数据库不允许从远程访问怎么办
本文提供了三种解决方法:
1、改表法。可能匙你d帐号不允许从远程登陆,只能在localhost。这个时候只要在localhostd那台电脑,登入mysql后,更改
"mysql"
数据库里d
"user"
表里d
"host"
项,从"localhost"改称"%"
mysql
-u
root
-pvmwaremysql>use
mysql;
mysql>update
user
set
host
=
'%'
where
user
=
'root';
mysql>select
host,
user
from
user;
2、授权法。
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'IDENTIFIED
BY
'mypassword'
WI
TH
GRANT
OPTION;
如果你想允许用户myuser从ip为192.168.1.6d主机连接到mysql服务器,并使用mypassword作为密码
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'192.168.1.3'IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
我用d第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句
mysql>FLUSH
RIVILEGES
使修改生效,就可以了
另外一种方法:
在安装mysqld机器上运行:
1、d:/mysql/bin/>mysql
-h
localhost
-u
root
//这样应该可以进入MySQL服务器
2、mysql>GRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'@'%'WITH
GRANT
OPTION
//赋予任何主机访问数据d权限
3、mysql>FLUSH
PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL服务器
这样就可以在其它任何d主机上以root身份登录啦。
‘捌’ 连接远程数据库失败
很多原因。比如:
1、数据库没启动;
2、数据库所在的服务器与当前应用服务器断网了;
3、数据库用户、密码、访问地址错了。(重点)
4、jdbc版本问题。
‘玖’ 为什么我不能连接到远程SQL SERVER数据库
1 权限问题,对面没有设置你的权限 2 本地安全策略没有配置好 3 默认 1.先保证ping通(有防火墙的先关闭防火墙) 2.在命令提示符下执行:telnet <服务器ip地址> 1433 不会报错 3.连接时使用用ip连接企业管理器 4.如果不行 SQL Server服务器--开始--程序--Microsoft SQL Server --服务器网络实用工具 - -启用 WinSock代理 --代理地址:(sqlserver服务器IP) --代理端口--设置 ---确定 然后在试试