MariaDB初始化和啟動故障


初始化故障排查

1. so依賴缺失

比如報這樣的錯誤:

./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

可以用yum install libnuma.so.1安裝依賴包。 實驗發現安裝成功之后,還是報同樣的錯誤。用ldd /usr/local/mysql/bin/mysqld查詢,libnuma.so.1 => not found。上網找了原因,需要再yum install numactl。而yum install libnuma.so.1安裝出來是numactl-2.0.9-2.el6.i686;所以需要再安裝yum install numactl,安裝出來是mysql-libs-5.1.71-1.el6.x86_64

./scripts/mysql_install_db --user=mysql
Installing MariaDB/MySQL system tables in '/data/mysql/mysql3306/data' ...
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解決方法,安裝libaio.so.1;但yum install libaio.so.1默認是安裝libaio.i686 0:0.3.107-10.el6,是32位的。
64位系統安裝:

wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

2. Selinux或防火牆沒有關閉

getenforce 確認是不是enable
查詢mysql錯誤代碼:perror xxx

3. 權限問題

ls -l /data/mysql/mysql3306

4. datadir非空

ls -l /data/mysql/mysql3306/data

5. 磁盤空間不夠

df -h

6. 參數錯誤

cat /data/mysql/mysql3306/error.log | grep -i err

7. 讀取不正確的配置文件

多個不同的目錄下有my.cnf文件,而mysql會從幾個地方讀取該文件,從而造成讀取不是預想中或是不正確的配置文件。

8. windows的配置文件直接復制過來的文件,可能存在BOM或換行符問題

dos2unix

啟動故障

1. 參數問題

2. 多個實例使用一份數據

innoDB: Unable to lock ./ibdata1, error: 11

如果不小心開了兩個同一個端口的mysql,如何關閉其中一個?

  1. ps aux|grep mysql,查看啟動時間,kill掉后面那個。
  2. 查看pid文件。

3. 端口號被占用

[ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
[ERROR] Do you already have another mysqld server running on port: 3306?

分析故障方法

  1. 查看error log
  2. 把日志打開
  3. 利用mysqld手工啟動查看
  4. 利用strace
strace /usr/local/mysql/bin/mysqld 2>&1 | tee 1.log

比如要了解mysql加載配置文件的過程,在vim 1.log下查找my.cnf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM