无法连接到本地的mysql服务器?怎么办

无法连接到本地的mysql服务器?怎么办,第1张

具体解决法如下:1排除网络或防火墙问题先看是否能ping通远程服务器,ping1921681211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet19216812113306,如果连接失败,配置防火墙。2配置防火墙,开启3306端口vi/etc/sysconfig/iptables-AINPUT-mstate–stateNEW-mtcp-ptcp–dport3306-jACCEPT(允许3306端口通过防火墙)/etc/initd/iptablesrestart(重启防火墙使配置生效)2检查MySQL配置3如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:netstat-apn|grep3360tcp600127001:3306:::LISTEN13524/mysqld注意红色的地方,这说明3306被绑定到了本地。检查一下mycnf的配置,这里可以配置绑定ip地址。

1、首先输入代码

public void SendByHttpClient(final String id, final String pw){

    new Thread(new Runnable() {

      @Override

      public void run() {

        try {

          HttpClient httpclient=new DefaultHttpClient();

          HttpPost httpPost=new HttpPost("http://web应用部署服务器上的IP地址:/HttpClientDemo/Login");//服务器地址,指向Servlet

          List<NameValuePair> params=new ArrayList<NameValuePair>();//将id和pw装入list

          paramsadd(new BasicNameValuePair("ID",id));

          paramsadd(new BasicNameValuePair("PW",pw));

          final UrlEncodedFormEntity entity=new UrlEncodedFormEntity(params,"utf-8");//以UTF-8格式发送

          httpPostsetEntity(entity);

          HttpResponse httpResponse= httpclientexecute(httpPost);

          if(httpResponsegetStatusLine()getStatusCode()==200)//在200毫秒之内接收到返回值

2、然后再输入下方的代码:

          {

            HttpEntity entity=httpResponsegetEntity();

            String response=EntityUtilstoString(entity1, "utf-8");//以UTF-8格式解析

            Message message=new Message();

            messagewhat=USER_LOGIN;

            messageobj=response;

            handlersendMessage(message);使用Message传递消息给线程

          }

        }

        catch (Exception e) {

          eprintStackTrace();

        }

      }

    })start();

  }

3、最终,测试结果图,如下:

默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。如果要远程连接,可采取以下两种方法:

一、改表法:

在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为19216816的主机连接到mysql服务器,并使用mypassword作为密码

mysql>GRANT ALL PRIVILEGES ON TO 'myuser'@'19216813'IDENTIFIED BY

'mypassword' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES

使修改生效即可。

排除网络或防火墙问题

先看是否能ping通远程服务器,ping 1921681211,如果不可以就是网络问题。然后,检查端口是否被防火墙挡住了,telnet 1921681211 3306,如果连接失败,配置防火墙。

配置防火墙,开启3306端口

vi /etc/sysconfig/iptables-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)/etc/initd/iptables restart(重启防火墙使配置生效)

2检查MySQL配置

如果开启了防火墙,telnet还是失败,通过netstat查看3306的端口状态:

netstat -apn|grep 3306tcp6  0  0 127001:3306  :::  LISTEN    13524/mysqld

注意地方,这说明3306被绑定到了本地。检查一下mycnf的配置,这里可以配置绑定ip地址。

bind-address=addr

不配置或者IP配置为0000,表示监听所有客户端连接。

ps:我开启3306端口,并且检查MySQL配置之后,telent仍然失败,但是在本机telnet是ok的,再三确认了配置没有问题。后来跟我们的ucloud账号管理员提了一下,才知道ucloud管理后台也需要开启3306端口,用云服务器的留意这个。

3检查用户访问权限

MySQL建用户的时候会指定一个host,默认是127001/localhost,那么这个用户就只能本机访问,其它机器用这个用户帐号访问会提示没有权限,host改为%,表示允许所有机器访问。

最后,别忘了重启mysql使配置生效。

以上几个原因,你看一下是否适用你的情况

第一中方法:比较详细

以下的文章主要介绍的是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、 首先确保linux下mysql安装好,服务启动完之后,就可以开始连接数据库了。在终端输入“mysql -hlocalhost -uroot -p”,其中h参数是主机名,这里是本地就写localhost,也可以省略:

2、输入mysql的密码之后就登录了,也可以不输入密码登录,比如这里的root密码是mysql123456,可以直接输入“mysql -hlocalhost -uroot -pmysql123456”,此时就没有提示输入密码,直接进入mysql的命令行中了:

3、此时显示的就是mysql的命令行界面了,若要退出输入quit就可以退出了。以上就是linux中连接数据库的操作:

方法如下:

、进入mysql,创建一个新用户kay:

2、 格式:grant 权限 on 数据库名表名 用户@登录主机 identified by "用户密码";

grant select,update,insert,delete on to kay@19216818 identified by "kaypass";

3、 查看结果,执行:

use mysql;

select host,user,password from user;

可以看到在user表中已有刚才创建的kay用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

将host字段的值改为%就表示在任何客户端机器上能以kay用户登录到mysql服务器,建议在开发时设为%。

update user set host = '%' where user = 'kay';

还有一个方法::

A、 /mysqladmin -uroot -p21century reload

/mysqladmin -uroot -p21century shutdown

B、/mysqld_safe --user-root &

记住:对授权表的任何修改都需要重新reload,即执行第3步。

如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在mysql数据库的db表中插入一条记录:

use mysql;

insert into db values('19216888234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

update db set host = '%' where user = 'xuys';

重复执行上面的第2、3步。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 无法连接到本地的mysql服务器?怎么办

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情