Can’t connect to local MySQL server through socket

mysql,Mysqldump,Mysqladmin,php连接mysql服务常会提示下面错误:

1

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

这是由于修改mysql服务的了socket文件mysql.sock位置,而导致无法通过mysql socket文件连接到mysql服务引起的,具体解决办法如下:
1、查看mysql服务的socket文件位置:
mysql socket文件的位置是在/etc/my.cnf中设置的,cat /etc/my.cnf内容如下:

1

2

3

4

[mysqld]

datadir=/storage/db/mysql

socket=/storage/db/mysql/mysql.sock

user=mysql

其中socket等于的路径就是socket文件的位置,我们只要修改my.cnf文件,告诉mysql,mysqldump,mysqladmin mysql服务的socket位置在哪里就可以。

2、修改my.cnf文件:
在/etc/my.cnf文件中添加如下内容,并重启mysqls服务,即可解决mysql,mysqldump,mysqladmin的“Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'”问题:

1

2

3

4

5

6

7

8

9

10

11

12

[mysqld]

datadir=/storage/db/mysql

socket=/storage/db/mysql/mysql.sock

 

[mysql]

socket=/storage/db/mysql/mysql.sock

 

[mysqldump]

socket=/storage/db/mysql/mysql.sock

 

[mysqladmin]

socket=/storage/db/mysql/mysql.sock

3、php连接mysql服务提示"Can't connect to local MySQL server through socket..."的解决方法
有时候mysql服务正常运行,用户名密码也完全正确,使用php的mysql_connect函数却连接不了mysql,调用php的mysql_error()函数提示“Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'”,这是我们需要修改/etc/php.ini文件。
在/etc/php.ini文件中"[MySQL]"项下找到"mysql.default_socket",并设置其值指向正确的mysql服务socket文件即可,如:

1

2

3

[MySQL]

...省略n行...

mysql.default_socket
=
"/storage/db/mysql/mysql.sock"

4、python连接mysql提示"Can't connect to local MySQL server through socket..."的解决方法:
在连接mysql数据库函数中指定socket文件,如下:

1

2

3

4

5

6

7

8

#!/usr/bin/python

from MySQLdb import connect

conn = connect(db="pzy", user="root", host="localhost", unix_socket="/storage/db/mysql/mysql.sock")

cur = conn.cursor()

count=cur.execute("show databases")

print 'there has %s dbs' % count

conn.commit()

conn.close()

5. php pdo连接mysql提示"Can't connect to local MySQL server through socket..."的解决方法:
同样在连接字符串添加mysql socket文件的位置即可,如下:

1

2

3

4

5

6

7

8

<?php

$dsn
=
"mysql:host=localhost;dbname=pzy;unix_socket=/storage/db/mysql/mysql.sock";

$db
=
new
PDO($dsn,
'root',
'');

$rs
=
$db->query("SELECT
* FROM qrtest");

while($row
=
$rs->fetch()){

    print_r($row);

}

?>

时间: 2024-12-21 07:29:22

Can’t connect to local MySQL server through socket的相关文章

XtraBackup出现 Can&#039;t connect to local MySQL server through socket &#039;/tmp/mysql.sock&#039;

Xtrabackup做备份时遇到下面错误信息MySQL server: Can't connect to local MySQL server through socket '/tmp/mysql.so'(2)   [root@MySQL-DB ~]# innobackupex --defaults-file=/usr/my.cnf --user=root --password=password  /mnt/resource/mysql_backup 160322 22:28:43 innoba

ERROR 2002 (HY000): Can&#039;t connect to local MySQL server through socket &#039;/var/lib/mysql/mysql.sock&#039; (2)

从供应商手中接手一个云平台(Windwos Azure)上的MySQL数据库,登录数据库时遇到错误: $mysql -uroot -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 检查配置文件/etc/my.cnf发现供应商修改了mysql数据库的数据存储目录,另外mysql.sock文件位置也变更为了/

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

   mysql 突然访问不了,登上服务器发现,mysql进程不见了.            错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)       发现是权限问题导致的.           改变权限 #chown -R mysql:mysql /var/lib/mysql            [root@localhost

ERROR 2002 (HY000): Can&amp;#39;t connect to local MySQL server through socket &amp;#39;/var/lib/mysql/mysql.sock&amp;#39; (

mysql启动成功 service mysqld start  mysql is OK mysql登录错误 : [root@localhost ~]# mysql -uroot -p123456ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 解决: vim /etc/my.cnf 找到 socket路径 scoket=/tmp/mysql.

connection to dat Can&amp;#39;t connect to local MySQL server through socket &amp;#39;/var/lib/mysql/mysql.sock&amp;#39; (2)

[root@t1 ~]# tail /tmp/zabbix_server.log  23392:20160303:131022.598 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)  23392:20160303:131022.598 Database is down.

Can&amp;#39;t connect to local MySQL server through socket &amp;#39;/var/run/mysqld/mysqld.sock&amp;#39; (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.如果出现: ja

MYSQL错误解决:ERROR 2002 (HY000): Can&#039;t connect to local MySQL server through socket &#039;/var/lib/mysql/mysql.sock&#039; (2)

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 据说这个问题的原因很多,当然,我自己这个问题我是清楚的,就是mysql.sock的位置所致,一个是PHP要求的,一个是MYSQLD定义的,一个是MY.CONF指定的...SO.... 暂时不能统一的话,用软链接LN -S命令解决吧..   方案5      摘要:解决不能通过mysql .so

解决Can't connect to local MySQL server through socket '/tmp/mysql.sock'错误

风信网(ithov.com)原创文章:刚安装完mysql,进行运行测试,报Can't connect to local MySQL server through socket '/tmp/mysql.sock'错误, [root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe 131206 22:42:51 mysqld_safe Logging to '/var/log/mysqld.log'. 131206 22:42:51 mysqld

Ruby on Rails 3 Can&amp;#39;t connect to local MySQL server through socket &amp;#39;/tmp/mysql.sock&amp;#39; on linux

Ruby on Rails 3 Can't connect to local MySQL server through socket '/tmp/mysql.sock' on linux 解决办法: up vote1down voteaccepted First, to find your socket file: mysqladmin variables | grep socket For me, this gives: | socket | /tmp/mysql.sock | 2  Then