Linux错误汇总

一,Linux系统下安装完MySQL,启动MySQL报错:Neither host 'localhost.localdomain' nor 'localhost' could be looked up with...

[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 已停

或者是这样

[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文件

[root@localhost ~]# vi /etc/hosts
#127.0.0.1   linuxtest.com 改为下面红色部分
127.0.0.1   localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6

二、[root@promote ~]# mysql                          #故障是没有那个命令

-bash: mysql: command not found

解决方法:

[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

三、[root@promote mysql]# service mysqld start

Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/promote.cache-dns.local.pid).

错误日志: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 启动成功。