更換mysql數據目錄後出現ERROR 2002 (HY000): Can't connect to local MySQL serve

服務器上的mysql默認數據目錄爲/var/lib/mysql/,同時服務器的/空間不是很大,而近期又有大量的日誌須要導入進行分析,時常搞得/的空間捉襟見肘,晚上一狠心就想把mysql的數據目錄轉移到另一塊硬盤/data中。mysql

因而關閉mysql服務:sql

service mysqld stop服務器

轉移mysql數據目錄socket

mv /var/lib/mysql/ /data/ide

編輯my.cnf網站

vi /etc/my.cnf日誌

修改其中的datadir和socket到新的路徑server

[mysqld]
datadir=/data/fuhj/mysql
socket=/data/fuhj/mysql/mysql.sockblog

本覺得修改完啓動mysql服務以後就沒問題了。get

service mysqld start

可是儘管啓動服務沒有問題,可是經過mysql客戶端鏈接的時候卻報錯:

[root@hostXXX data]# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

在網上搜了半天也沒個因此然,一個個都是相互抄襲,各類拷貝,沒有一個靠譜的。

本身分析了一下,提示說沒法經過socket文件/var/lib/mysql/mysql.sock鏈接到mysql服務器,也就是說對於mysql程序來講,儘管我把socket文件從/var/lib/mysql/mysql.sock轉移到了/data/mysql/mysql.sock我在my.cnf裏指定了mysqld知道了,可是對於mysql仍是會從默認的安裝目錄/var/lib/mysql/裏找這個mysql.sock文件,找不着,就不知道從哪裏啓動了。

爲了驗證個人想法,我首先從轉移後的路徑作了個軟鏈接指向到mysql的默認目錄裏,若是mysql程序能連上說明想法是正確的。

ln –s /data/mysql/mysql.sock /var/lib/mysql/

作完軟鏈接,重啓mysql服務,再次經過mysql程序鏈接,沒有問題,能夠連上了。

[root@host160 lib]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.71 Source distribution

Copyright (c) 2000, 2013, 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.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

那說明就是這裏的問題了。

其實不作軟連接也是能夠的,只須要在/etc/my.cnf裏添加[mysql]字段指定socket的位置到咱們轉移後的位置便可

[mysql]
socket=/data/mysql/mysql.sock

 

做者: 付海軍
出處:http://fuhj02.cnblogs.com
版權:本文版權歸做者和博客園共有
轉載:歡迎轉載,爲了保存做者的創做熱情,請按要求【轉載】,謝謝
要求:未經做者贊成,必須保留此段聲明;必須在文章中給出原文鏈接;不然必究法律責任
我的網站: http://www.fuhaijun.com/

相關文章
相關標籤/搜索