1. 程式人生 > >mysql啟動失敗,報沒有pid錯誤

mysql啟動失敗,報沒有pid錯誤

在安裝完lnmp後,啟動mysqld失敗,提示

[[email protected] ~]# service mysqld start               
Starting MySQL                                             [確定]
[[email protected] ~]# service mysqld restart
MySQL server PID file could not be found!                  [失敗]
Starting MySQL..The server quit without updating PID file ([失敗]mysql_data/centos-6.3.pid).

原因:在mysql的datadir資料目錄下沒有pid檔案或者未被授權

解決方式:

(1)一定要給譬如/data/mysql授權

         chown -R mysql:mysql /data/mysql

(2)如果授權了不好使,你可以自己在/data/mysql下建立一個以主機名命名的pid,如我的主機名是centos-6.3

          你可以cd /data/mysql && touch centos-6.3.pid

           在裡面隨意寫一個程序中沒有的pid號

 (3)如果還是不行,你就需要看看配置檔案/etc/my.cnf裡面的配置了,將port、datadir、basedir、 socket前的#去掉

[mysqld]
#datadir = /data/mysql_data
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
 basedir = /usr/local/mysql
 datadir = /data/mysql_data
 port = 3306
# server_id = 
socket = /tmp/mysql.sock
 (4)另外的處理方法還有可能是下面的原因導致

 1>可能是第二次在機器上安裝mysql,有殘餘資料影響了服務的啟動。

      解決方法:去mysql的資料目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。本人就是使用第三條方法 解決的 !http://blog.rekfan.com/?p=186

  2>mysql在啟動時沒有指定配置檔案時會使用/etc/my.cnf配置檔案,請開啟這個檔案檢視在[mysqld]節下有沒有指定資料目錄(datadir)。

解決方法:請在[mysqld]下設定這一行:datadir = /usr/local/mysql/data

   3>skip-federated欄位問題

解決方法:檢查一下/etc/my.cnf檔案中有沒有沒被註釋掉的skip-federated欄位,如果有就立即註釋掉吧。

   4>selinux惹的禍,如果是centos系統,預設會開啟selinux

解決方法:關閉它,開啟/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器試試。