mysql沒法啓動

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 &  
問題解面試

相關文章
相關標籤/搜索