標籤:os io 檔案 art ar 問題 cti linux
linux下mysql無法啟動的解決方案
2010-02-23 15:34:36| 分類: UNIX |字型大小
剛開始學mysql時都是用redhat內建的。啟動是什麼 /rc.d/init.d/ start
這很簡單,但是後來越學越多,系統內建的mysql,有的是版本太低,有的是與 自己想要裝的web服務需要的低版本的mysql
後來自己學著以tar的方式安裝mysql,我的mysql裝在/usr/local/mysql目錄下啟
動碰到過很多問題。最常見的是:
ERROR 2002: Can‘t connect to local MySQL server through socket
‘/tmp/mysql.sock‘ (111)
解決辦法:
[[email protected] mysql]# /usr/local/mysql/bin/mysqladmin -u root / > -S /var/lib/mysql/mysql.sock password ‘your.passwd‘ 或者做個串連
ln -s /var/lib/mysql/mysql.sock /tmp
其實提示找不到 /tmp/mysql.sock有時也並不是/tmp目錄下沒這個檔案,是啟動 命令不對,我碰到過
常見的幾種啟動方式,自己也不是記得很清楚,如果你確定tmp下有mysql.sock這 個檔案不妨試試另外的幾個命令 /usr/local/mysql/bin/mysql -u root -p /usr/local/mysql/bin/mysqld --user=mysql& /usr/local/mysql/bin/mysqld --user=root& /usr/local/mysql/bin/mysqld_safe --user=root& /usr/local/mysql/bin/mysqld_safe --user=mysql&
/usr/local/mysql/bin/safe_mysqld--uer=root&(注意safe_mysqld與mysqld_safe是不同的,&表示mysql在後台運行)我的就會報錯了 STOPPING server from pid file
/usr/local/mysql/data/localhost.localdomain.pid 060304 11:46:21 mysqld ended
這是許可權問題,我的mysql目錄屬於root使用者,也屬於root群組,改用mysqld_safe啟動就沒問題了, 大家只要注意這幾個mysql,safe_mysqld,mysqld_safe,mysqld,mysqladmin.多試 幾次
其實有時mysql已經正常啟動了,查看mysql是否啟動命令 ps -aux | grep mysqld 會看到如下類似內容
mysql 6394 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/
應屆生求職季寶典 開啟你的職場征途 簡曆撰寫 筆試真題 面試攻略 專業技能指導 公務員專區
mysql 6395 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/
mysql 6396 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/
root 6422 0.0 1.1 2408 732 pts/3 S 16:20 0:00 grep mysql
查看mysql是否在監聽連接埠命令 netstat -tl | grep mysql netstat -ant 會看到如下類似內容 tcp 0 0 *:mysql *:* LISTEN
啟動mysql 報錯:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
1、先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已經啟動. 另外看看是不是許可權問題.
2、確定你的mysql.sock是不是在那個位置,
mysql -u 你的mysql使用者名稱 -p -S /var/lib/mysql/mysql.sock 3、試試:service mysqld start
4、如果是許可權問題,則先改變許可權 #chown -R mysql:mysql /var/lib/mysql [[email protected] ~]# /etc/init.d/mysqld start 啟動 MySQL: [ 確定 ]
[[email protected] ~]# mysql -uroot -p
ERROR 2002 (HY000): Can‘t connect to local server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
原因是,/var/lib/mysql 的存取權限問題。
shell> chown -R mysql:mysql /var/lib/mysql
接著啟動伺服器
shell> /etc/init.d/mysql start
伺服器正常啟動後察看 /var/lib/mysql 自動產生mysql.sock檔案。 但是我的問題仍然沒有得到解決。 問題終於解決:
方法: 修改/etc/my.conf: [mysqld]
datadir=/usr/local/mysql/data socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql
basedir=/usr/local/mysql
If there is not currently a section called [client], add one at the bottom of the file and copy the socket= line under the [mysqld] section such as: [client]
socket=/var/lib/mysql/mysql.sock
發現依舊如此,運行/etc/init.d/mysql start報錯: Starting MySQLCouldn‘t find MySQL manager or server
是mysqld服務沒啟,運行/usr/local/mysql/bin/mysqld_safe &
問題解