初始化故障排查 1. so依賴缺失 比如報這樣的錯誤: 可以用 安裝依賴包。 實驗發現安裝成功之後,還是報同樣的錯誤。用 查詢, 。上網找了原因,需要再 。而 安裝出來是numactl 2.0.9 2.el6.i686;所以需要再安裝 ,安裝出來是 。 解決方法,安裝libaio.so.1;但 預設 ...
初始化故障排查
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,如何關閉其中一個?
- ps aux|grep mysql,查看啟動時間,kill掉後面那個。
- 查看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?
分析故障方法
- 查看error log
- 把日誌打開
- 利用mysqld手工啟動查看
利用strace
strace /usr/local/mysql/bin/mysqld 2>&1 | tee 1.log
比如要瞭解mysql載入配置文件的過程,在vim 1.log下查找my.cnf