先看這裡:很有可能是你的硬碟滿了,如果沒滿再看下面。
1、目錄許可權問題
對mysql的安裝目錄和資料目錄分別進行授權
# chown -R mysql.mysql /usr/local/mysql # chown -R mysql.mysql /data/mysql # service mysqld start
2、可能程式裡已經存在mysql程式
解決方法:用命令“ps -ef|grep mysqld”檢視是否有mysqld程式,如果有使用“kill -9 程式號”殺死,然後重新啟動mysqld!
3、可能是第二次在機器上安裝mysql,有殘餘資料影響了服務的啟動。
解決方法:去mysql的資料目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。
4、mysql在啟動時沒有指定配置檔案時會使用/etc/my.cnf配置檔案,請開啟這個檔案檢視在[mysqld]節下有沒有指定資料目錄(datadir)。
解決方法:請在[mysqld]下設定這一行:datadir = /usr/local/mysql/data
5、可能是/usr/local/mysql/data/mysql.pid檔案沒有寫的許可權
解決方法 :給予許可權,執行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然後重新啟動mysqld!
6、selinux惹的禍,如果是centos系統,預設會開啟selinux
解決方法:關閉它,開啟/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器試試
7、刪除mysql庫檔案/data/mysql/中的“ib_*”檔案,注意:** 執行該操作之前一定要對資料庫進行備份,因為ibdata1存放的是所有資料檔案,如果不小心刪了庫,那就慘了!!!(傳說中的從刪庫到跑路。。。),然後重啟mysql。
8、檢視日誌有如下錯誤提示:Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed。
解決辦法:
[root@localhost mysql]# rm -rf ib_logfile*
然後啟動mysql,問題解決!
9、看日誌有這樣的字樣“initialize buffer pool,size=128.0M”,“cannot allocate memory for the pool”,大概意思是說無法分配足夠的記憶體供pool使用。此時想到mysql配置檔案中有相關的配置,於是更改如下引數:
#配置檔案中該值預設為128M innodb_buffer_pool_size = 128
將這個值調小,再次啟動mysql服務,問題解決!
10、系統上缺少mysql的依賴檔案
# yum -y install libaio # yum -y install numactl
重新啟動mysql服務,問題解決