Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

今天在ubuntu上连接mysql数据库时,遇到一个小问题

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

第一次使用时还可以使用的,突然就不好了,不知道是不是没吃药,

先查看数据库状态:

 jason@jason-Aspire-EC-471G:~$ sudo /etc/init.d/mysql status

(因为我使用的是普通用户,所以要sudo一下)

1.如果出现:

jason@jason-Aspire-EC-471G:~$ sudo /etc/init.d/mysql status
 * /usr/bin/mysqladmin  Ver 8.42 Distrib 5.5.41, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version        5.5.41-0ubuntu0.14.04.1
Protocol version    10
Connection        Localhost via UNIX socket
UNIX socket        /var/run/mysqld/mysqld.sock
Uptime:            8 min 2 sec

Threads: 1  Questions: 110  Slow queries: 0  Opens: 291  Flush tables: 1  Open tables: 4  Queries per second avg: 0.228

等相关数据库配置信息,表示数据库是start状态,是可用可连接的。

2.如果出现

 * MySQL is stopped.

表示数据库是stop状态,是不可用不可连接的。

也可以这样>

在连接本地数据库,很傻瓜的做法就是在命令行键入mysql,

1.如果出现:

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

那么连接不上数据库的

2.如果出现:

 

ERROR 2002 (HY000): Access denied for user 'jason'@'localhost' (using password: NO) 

那么表示可以连接的


使用

jason@jason-Aspire-EC-471G:~$mysql -uroot -p 

也会出现

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

不管怎样查看,最终问题都是指向

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

网上查了下,数据库不在启动状态,应该是权限的问题(因为我成功启动过,然会突然不行了,其中也有动过my.cnf文件),

1.首先键入

 ps -ef | grep mysql

jason@jason-Aspire-EC-471G:~# ps -ef|grep mysql
root     21721  1958  0 14:14 pts/12   00:00:00 /bin/sh /usr/bin/mysqld_safe
mysql    22132 21721  0 14:14 pts/12   00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/lib/mysql/jason-Aspire-EC-471G.err --pid-file=/var/lib/mysql/jason-Aspire-EC-471G.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root     24309 21554  0 14:29 pts/12   00:00:00 grep --color=auto mysql

可以查到mysql的进程,ok,kill掉mysql的进程

jason@jason-Aspire-EC-471G:~$ kill  22132


2.然后把数据库重新启动,但每次都是【fail】,因为我使用的是普通用户"jason",然后"sudo -s"切换到管理员root,启动数据库,如下


jason@jason-Aspire-EC-471G:~$ sudo -s
[sudo] password for jason: 
root@jason-Aspire-EC-471G:~# /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                                                                                                                    [ OK ]
 * Starting MySQL database server mysqld                                                                                                                      [ OK ]
 * Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly.

启动完成了

用管理员也可以连接数据库。数据库启动成功了,那么切换到普通用户吧"su jason" ,再次键入

 jason@jason-Aspire-EC-471G:~$ sudo /etc/init.d/mysql status
</pre>查看数据库状态,则会出现数据库相关配置信息<p></p><p><span style="font-size:18px">这时普通用户也可重启数据库。可以进行备份,恢复等相关操作。</span></p><p><span style="font-size:18px">本来已经完结的,今天在使用时又出现了,所以又来补充几句,</span></p><p><span style="font-size:18px"><span style="font-size:18px">今天</span>按照上面的步骤,切换到root用户重启也【fail】了,</span></p><p><span style="font-size:18px">这样不成功的话请使用命令,</span></p><p><span style="font-size:18px"><span style="font-size:18px"><span style="font-size:18px"><span style="font-size:18px"><span style="background-color:rgb(255,255,255)"></span></span></span></span></span></p><pre name="code" class="cpp">jason@jason-Aspire-EC-471G:~$ ps -aux | grep mysql

在这里杀死mysql进程后,即可备份重启使用数据库。

因为我都是使用

jason@jason-Aspire-EC-471G:~$ lsof -i tcp:3306

这个命令(因为经常杀8080端口,所以习惯了,不过也可以杀mysql进程,前提是切换到root用户,否则用

命令 "lsof -i tcp:3306" 是看不见mysql进程看不见的,root后可看到mysqld进程,杀死即可)

两种查看mysql进程方法都行,杀死进程,然后再连接或者重启就好了。


MySQL只有information_schema,test两个数据库

http://blog.csdn.net/CSDNones/article/details/50564929


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值