亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql登錄時(shí)報(bào)socket找不到的問題及解決

 更新時(shí)間:2024年07月16日 11:01:01   作者:我是李超人  
這篇文章主要介紹了mysql登錄時(shí)報(bào)socket找不到的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mysql登錄時(shí)報(bào)socket找不到

mysqld.socket文件是用來給客戶端和服務(wù)端進(jìn)行通信的,如果通過源碼方式安裝,默認(rèn)情況下這個(gè)文件會(huì)被放在tmp目錄下。

當(dāng)然也可以手動(dòng)指定存放位置,通過修改/etc/my.cnf文件的socket參數(shù)來修改mysqld.socket的存放路徑。

例如:

[mysqld]
socket=/data/mysqldb/mysqld.sock

但是這樣一來在登錄的時(shí)候就會(huì)出現(xiàn)如下問題

[root@s186 /data/mysql]#/usr/local/mysql/bin/mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

mysql客戶端在登錄的時(shí)候默認(rèn)會(huì)去/tmp/mysql.sock這個(gè)目錄查找mysqld.socket文件,由于修改了路徑自然是找不到的。

可以通過修改/etc/my.cnf文件給客戶端指定位置。

添加如下配置:

[client]
socket=/data/mysqldb/mysqld.sock

這樣客戶端在登錄時(shí)就會(huì)去指定的目錄查找mysqld.socket文件,

注意client的socket要和mysqld是一樣的,因?yàn)榭蛻舳撕头?wù)端通信靠的就是這個(gè)文件,肯定要一致

通過上面的案例應(yīng)該明白為何服務(wù)端可以啟動(dòng),但是登錄的時(shí)候會(huì)報(bào)socket找不到的問題了。

出現(xiàn)socket找不到的問題大致有以下幾種情況

1.mysqld和client的socket配置路徑不一樣

比如像下面這樣的配置

[mysqld]
socket=/data/mysqldb/mysqld.sock
[client]
socket=/data/mysqldb/mysql.sock

路徑是一樣的,但是文件名不一樣,一個(gè)是mysqld.socket,一個(gè)是mysql.socket

socket文件是由服務(wù)端生成的,而客戶端找的就是服務(wù)端生成的socket文件,所以client的配置要和mysqld一樣

2.在cmake的時(shí)候指定了路徑

比如像下面這一段cmake指令

在參數(shù)DMYSQL_UNIX_ADDR=/tmp/mysqld.sock中指定了socket的位置

那么/etc/my.cnf上mysqld上的socket和client上的socket都需要和這個(gè)一致

因?yàn)閏make在執(zhí)行完之后,mysqld這個(gè)執(zhí)行文件才會(huì)生成,并且這個(gè)執(zhí)行文件中會(huì)記錄你指定的參數(shù)

那么當(dāng)執(zhí)行mysqld的時(shí)候,它就會(huì)在你指定的目錄下去查找

這個(gè)時(shí)候/etc/my.cnf下的mysqld和client的socket必須和指定的路徑保持一致

否則mysqld執(zhí)行都會(huì)失?。〞?huì)報(bào)change dir…這樣的錯(cuò)誤)

cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql56 -DMYSQL_DATADIR=/data/mysqldb/data -DSYSCONFDIR=/etc/my.cnf  -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/data/mysqld.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=utf8 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

解決方法

解決socket的核心就是在登錄的時(shí)候告訴客戶端socket文件的位置

要么通過/etc/my.cnf文件指定位置

要么就是在登錄的時(shí)候指定位置

像下面這樣:

mysql -uroot -p --socket=/data/mysqldb/mysqld.sock

還有一種方式就是創(chuàng)建軟連接,因?yàn)榭蛻舳四J(rèn)會(huì)到/tmp下找mysqld.socket文件

我不通過配置文件,在tmp下建一個(gè)軟連接就可以了

ln -s /data/mysqldb/mysqld.sock mysql.socket

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 運(yùn)維角度淺談MySQL數(shù)據(jù)庫優(yōu)化(李振良)

    運(yùn)維角度淺談MySQL數(shù)據(jù)庫優(yōu)化(李振良)

    一個(gè)成熟的數(shù)據(jù)庫架構(gòu)并不是一開始設(shè)計(jì)就具備高可用、高伸縮等特性的,它是隨著用戶量的增加,基礎(chǔ)架構(gòu)才逐漸完善。這篇博文主要談MySQL數(shù)據(jù)庫發(fā)展周期中所面臨的問題及優(yōu)化方案
    2015-07-07
  • MYSQL大量寫入問題優(yōu)化詳解

    MYSQL大量寫入問題優(yōu)化詳解

    這篇文章主要介紹了MYSQL大量寫入問題優(yōu)化詳解,文中優(yōu)化點(diǎn)解釋的很清楚,讓人看完就明了,感興趣的同學(xué)可以閱讀理解下
    2021-03-03
  • mysql的啟動(dòng)過程詳解

    mysql的啟動(dòng)過程詳解

    這篇文章主要介紹了mysql的啟動(dòng)過程詳解,本文用生動(dòng)風(fēng)趣的文風(fēng)講解了mysql的啟動(dòng)過程,絕對(duì)讓你難忘哦,需要的朋友可以參考下
    2014-08-08
  • 最新評(píng)論