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)
解決辦法:
[root@test 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
應屆生求職季寶典 開啓你的職場征途 簡歷撰寫 筆試真題 面試攻略 專業技能指導 公務員專區
linux
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)
一、先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已經啓動. 另外看看是否是權限問題.
二、肯定你的mysql.sock是否是在那個位置,
mysql -u 你的mysql用戶名 -p -S /var/lib/mysql/mysql.sock 三、試試:service mysqld start
四、若是是權限問題,則先改變權限 #chown -R mysql:mysql /var/lib/mysql [root@localhost ~]# /etc/init.d/mysqld start 啓動 MySQL: [ 肯定 ]
[root@localhost ~]# 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 web
接着啓動服務器
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 &
問題解面試