Cant connect to local MySQL server through socket /var/run/m

今天在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_64Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Server version 5.5.41-0ubuntu0.14.04.1Protocol version 10Connection Localhost via UNIX socketUNIX socket /var/run/mysqld/mysqld.sockUptime: 8 min 2 secThreads: 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 mysqlroot 21721 1958 0 14:14 pts/12 00:00:00 /bin/sh /usr/bin/mysqld_safemysql 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=3306root 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查看数据库状态,则会出现数据库相关配置信息

这时普通用户也可重启数据库。可以进行备份,恢复等相关操作。

本来已经完结的,今天在使用时又出现了,,所以又来补充几句,

今天按照上面的步骤,切换到root用户重启也【fail】了,

这样不成功的话请使用命令

root@jason-Aspire-EC-471G:~# lsof -i tcp:3306这里会显示mysql的一些进程,

全部kill掉,杀死进程,然后再连接或者重启就好了。

快乐不是因为拥有的多而是计较的少

Cant connect to local MySQL server through socket /var/run/m

相关文章:

你感兴趣的文章:

标签云: