Linux錯誤彙總mysql
一,Linux系統下安裝完MySQL,啓動MySQL報錯:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with...linux
[root@localhost ~]# mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) [root@localhost ~]# /etc/rc.d/init.d/mysqld status mysqld 已停
或者是這樣sql
[root@localhost ~]# service mysqld start 初始化 MySQL 數據庫: Neither host 'localhost.localdomain' nor 'localhost' could be looked up with /usr/bin/resolveip Please configure the 'hostname' command to return a correct hostname. If you want to solve this at a later stage, restart this script with the --force option [失敗]
解決方法:數據庫
1,編輯vi /etc/hosts文件centos
[root@localhost ~]# vi /etc/hosts #127.0.0.1 linuxtest.com 改成下面紅色部分 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
2、[root@promote ~]# mysql #故障是沒有那個命令bash
-bash: mysql: command not founddom
解決方法:socket
[root@promote ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql [root@promote ~]#echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile [root@promote ~]#source /etc/profile
3、[root@promote mysql]# service mysqld start
ide
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/promote.cache-dns.local.pid).ui
錯誤日誌:161026 22:47:25 mysqld_safe mysqld from pid file /usr/local/mysql/data/promote.cache-dns.local.pid ended
解決方法:根據/etc/my.cnf 初始化數據便可。
[root@promote mysql]# vi /etc/my.cnf 執行以下命令: [root@promote mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid
1,多是/usr/local/MySQL/data/rekfan.pid文件沒有寫的權限
解決方法:給予權限,執行 「chown -R mysql:mysql /var/data」 「chmod -R 755 /usr/local/mysql/data」 而後從新啓動mysqld!
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,skip-federated字段問題
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被註釋掉的skip-federated字段,若是有就當即註釋掉吧。
6,錯誤日誌目錄不存在
解決方法:使用「chown」 「chmod」命令賦予mysql全部者及權限
7,selinux惹的禍,若是是centos系統,默認會開啓selinux
解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled後存盤退出重啓機器試試。
四,故障現象:ERROR 1045 (28000):Access denied for user 'root'@'localhost' (using password:NO)
解決方法1:
在你新安裝的沒有數據的狀況你能夠這麼作 [root@hwg1227 ]#pkill mysqld [root@hwg1227 ]#lsof -i :3306 [root@hwg1227 ]#rm-rf /usr/local/mysql/data/* [root@hwg1227 ]#cd /usr/local/mysql [root@hwg1227 mysql ]#/scripts/mysql_install_db --basedir=/usr/locla/mysql --datadir=/usr/locla/mysql/data --user=mysql
解決方法2:
在[mysqld]後面任意一行添加「skip-grant-tables」用來跳過密碼驗證的過程 [root@hwg1227 ]#/etc/init.d/mysql restart #重啓數據庫 [root@hwg1227 ]#mysql mysql> use mysql; mysql> update user set password=password("你的新密碼") where user="root"; mysql> flush privileges; mysql> quit
五,zabbix網頁出現鏈接數據庫失敗;mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
查看了錯誤日誌: tail -fn 200 /var/log/mysqld.log 截取部份內容
InnoDB: Error: tried to read 65536 bytes at offset 0 3583488. InnoDB: Was only able to read 512. InnoDB: Fatal error: cannot read from file. OS error number 17.
解決方法:
進入cd /var/lib/mysql 刪除了兩個日誌文件rm -rf ib_logfile0和rm -rf ib_logfile1 而後重啓系統;而後/etc/init.d/mysqld start 啓動成功。