Linux服务器上的MySQL数据库宕掉的原因

生产环境:

操作系统:CentOS release 6.8

数据库系统:MySQL 5.5.52

分析问题:

一、客户端访问出现以下错误:

错误1:浏览器访问Cacti监控系统

FATAL: Cannotconnect to MySQL server on ‘localhost‘. Please make sure you have specified avalid MySQL database name in ‘include/config.php‘

错误2:浏览器访问Discuz系统


Discuz! Database Error


The database has encountered a problem. Need Help?

   

Error messages:

  • [Type] 无法连接到数据库服务器
  • [2002] Can‘t connect to       local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)

Program messages:

  • [Line:       0050]forum.php(discuz_core->init)
  • [Line:       0065]source/class/class_core.php(discuz_core->_init_db)
  • [Line:       0327]source/class/class_core.php(db_mysql->connect)
  • [Line:       0621]source/class/class_core.php(db_mysql->_dbconnect)

错误3:浏览器访问BBS论坛

MYSQL 连接数据库失败,请确定数据库用户名,密码设置正确
Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘(2)
2002

错误4:由于mysql连接数太多,导致Toomany connections的问题

通过以上错误,基本上确定是数据库出了问题。

二、进一步通过服务器来分析问题:

通过SecureCRT远程登录 Linux服务器,通过服务器来分析数据库运行情况:

[[email protected]/]# service mysqld status

mysqld (pid18965) 正在运行...        #实际上是一个假像,没有真正启动MySQL服务

[[email protected]/]# lsof -i:3306     #没有监测到3306端口

[[email protected]/]# mysql -uroot –p      #无法登录数据库服务

ERROR 2002(HY000): Can‘t connect to local MySQL server through socket ‘/var

[[email protected] ~]# service mysqld start

Timeout erroroccurred trying to start MySQL Daemon.   #启动 mysqld 时经过很长时间显示

正在启动 mysqld:                                          [失败]

[[email protected]]# service mysqld start

MySQL Daemonfailed to start.

正在启动 mysqld:                                          [失败]

[[email protected]]# service mysqld status

mysqld 已停

三、通过分析日志来找到问题所在

[[email protected]]# tail  -100 /var/log/mysqld.log  170906 20:27:41 [Note] Plugin ‘FEDERATED‘ isdisabled.

170906 20:27:41InnoDB: The InnoDB memory heap is disabled

170906 20:27:41InnoDB: Mutexes and rw_locks use GCC atomic builtins

170906 20:27:41InnoDB: Compressed tables use zlib 1.2.3

170906 20:27:41InnoDB: Using Linux native AIO

170906 20:27:41InnoDB: Initializing buffer pool, size = 128.0M

170906 20:27:41InnoDB: Completed initialization of buffer pool

170906 20:27:41InnoDB: highest supported file format is Barracuda.

17090620:27:41  InnoDB: Waiting for thebackground threads to start

170906 20:27:42InnoDB: 5.5.52 started; log sequence number 1648953943

170906 20:27:42[Note] Server hostname (bind-address): ‘0.0.0.0‘; port: 3306

170906 20:27:42 [Note]   - ‘0.0.0.0‘ resolves to ‘0.0.0.0‘;

170906 20:27:42[Note] Server socket created on IP: ‘0.0.0.0‘.

170906 20:27:42 [ERROR] /usr/libexec/mysqld: Error writingfile ‘/var/run/mysqld/mysqld.pid‘ (Errcode: 28)   #无法写入文件到磁盘

170906 20:27:42 [ERROR] Can‘t start server: can‘t create PIDfile: No space left on device                            #不能创建PID文件

170906 20:27:42mysqld_safe Number of processes running now: 0

170906 20:27:42mysqld_safe mysqld restarted

170906 20:27:42[Note] libgovernor.so not found

170906 20:27:42[Note] /usr/libexec/mysqld (mysqld 5.5.52-cll-lve) starting as process 28237...

170906 20:27:42[Note] Plugin ‘FEDERATED‘ is disabled.

170906 20:27:42InnoDB: The InnoDB memory heap is disabled

170906 20:27:42InnoDB: Mutexes and rw_locks use GCC atomic builtins

170906 20:27:42InnoDB: Compressed tables use zlib 1.2.3

四、尝试启动数据库服务

[[email protected]~]# /usr/bin/mysql_install_db

WARNING: Thehost ‘sky9896‘ could not be looked up with resolveip.

This probablymeans that your libc libraries are not 100 % compatible

with this binaryMySQL version. The MySQL daemon, mysqld, should work

normally withthe exception that host name resolving will not work.

This means thatyou should use IP addresses instead of hostnames

when specifyingMySQL privileges !

Installing MySQLsystem tables...

170906 20:44:44[Note] libgovernor.so not found

170906 20:44:44[Note] /usr/libexec/mysqld (mysqld 5.5.52-cll-lve) starting as process 8472 ...

ERROR: 1030  Got error28 from storage engine   #28个表无法存储

170906 20:44:45 [ERROR] Aborting

170906 20:44:45[Note] /usr/libexec/mysqld: Shutdown complete

Installation ofsystem tables failed!  Examine the logsin

/var/lib/mysqlfor more information.

You can try tostart the mysqld daemon with:

shell> /usr/libexec/mysqld --skip-grant&

and use thecommand line tool /usr/bin/mysql

to connect tothe mysql database and look at the grant tables:

shell> /usr/bin/mysql -u root mysql

mysql> show tables

……

 通过上面的分析,确定磁盘空间不够用。

[[email protected]]# df  -h

Filesystem      Size Used Avail Use% Mounted on

/dev/sda2       49G   47G     0   100%/    #49G-47G,还是无可用空间,

tmpfs           939M 100K  939M   1% /dev/shm

/dev/sda1        93M  54M   35M  61% /boot

/dev/sda5       179G 2.3G  168G   2% /home

[[email protected]/]# du  -sh *   #查看文件大小

12K     a

152K    app

13G     application

6.7M    bin

52M     boot

4.0K    data

4.0K    data.php

340K    dev

326M    etc

2.2G    home

47M     html

318M    lib

20M     lib64

0       libmysqlclient_r.so

0       libmysqlclient.so

16K     lost+found

4.0K    media

8.0K    mnt

88M     oe

90M     opt

38M     root

53M     safedog_linux32

9.4M    sbin

376K    scripts

4.0K    selinux

42M     skyboy

4.0K    srv

14M     tmp

4.0K    usb

3.0G    usr

31G     var

[[email protected] www]# rm 5-*   #多删除一些文件,腾出可用空间

rm:是否删除普通文件"5-10第五课创业方式选择故事5专家点评.rar"?y

rm:是否删除普通文件"5-1第五课创业方式选择故事1教学案例.rar"?y

rm:是否删除普通文件"5-2第五课创业方式选择故事1专家点评.rar"?y

rm:是否删除普通文件"5-3第五课创业方式选择故事2教学案例.rar"?y

rm:是否删除普通文件"5-4第五课创业方式选择故事2专家点评.rar"?y

rm:是否删除普通文件"5-5第五课创业方式选择故事3教学案例.rar"?y

rm:是否删除普通文件"5-6第五课创业方式选择故事3专家点评.rar"?y

rm:是否删除普通文件"5-7第五课创业方式选择故事4教学案例.rar"?^Z

[3]+  Stopped                 rm -i 5-*

[[email protected]]# df -h

Filesystem      Size Used Avail Use% Mounted on

/dev/sda2       49G   45G  1.2G 98% /   #可用空间1.2G

tmpfs           939M 100K  939M   1% /dev/shm

/dev/sda1        93M  54M   35M  61% /boot

/dev/sda5       179G 2.3G  168G   2% /home

[[email protected]]# service mysqld start

正在启动 mysqld:            [确定]    #数据库服务正常启动

小结,最终原因是Linux根目录”/”下可使用空间不足,导致数据库服务无法启动。网上有许多解决方法,并不能实际解决,关键还是要查看运行日志找问题。因作者是采用普通电脑架设Linux服务器,因上面跑了很多系统,导致空间骤增不够用。

时间: 2024-11-05 04:49:20

Linux服务器上的MySQL数据库宕掉的原因的相关文章

怎么单向同步两linux服务器上的MYSQL数据库

因为工作需要,所以就慢慢配置两台Linux服务器上面的MYSQL数据库,实现单向数据库的同步,同步数据库的条件是: (1)两服务器上的数据库的名字要相同.(2)数据库的表的结构要相同,不同一个数据库多一张表,一个数据库少一张表.(3)只能高版本的数据库同步低版本的数据库,因为mysql是向下兼容的.所以,主服务器master是低版本的,从服务器slave是高版本的. 假设数据库名为test,数据库的用户为root,密码为123456,则进行同步配置如下: 一,先配置主服务器master: 1,找

Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码

1,在/etc/my.cnf末尾  加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4,终端输入update mysql.user set authentication_string=password('123456') where user='root'; 5,在/etc/my.cnf末尾  去掉skip-grant-tables,保存. 6,重启MySql,终端输入 mysql

使用Navicat连接管理远程linux服务器上的mysql数据库

点击这个连接,选择mysql. 填完这两页,测试成功,点击确定即可.创建了hyj连接. 结果如下: 原文地址:https://www.cnblogs.com/hyjh/p/11503234.html

远程访问服务器上的MySQL数据库,发现root远程连接不上

远程访问服务器上的MySQL数据库,发现root远程连接不上,提示错误:"1045-Access denied for user [email protected]" 解决办法如下,执行命令: mysql> use mysql; mysql> selecthost,user from user; 查看结果是不是root用户仅允许本地(localhost)登录,下面这个截图就是这种情况. 是的话,就要修改它的host为%,表示任意IP地址都可以登录. GRANT ALL PR

navicat连接不上Linux服务器上的MySQL

1.首先确定你的linux已经关闭防火墙 详细操作点这里: 如果是公司服务器防火墙比较重要不能关闭,那就麻烦点了,需要在防火墙的配置文件下配置属性. 如果还不能解决,请继续往下看. 2.如果是云服务器,请确认3306端口是否已经设置对外开放 此处以阿里云服务器为例,阿里云的服务器默认端口是不对外开放的,如果想要供外部访问,需要在安全组中手动添加规则,详情操作可以参考官方文档 :https://helpcdn.aliyun.com/document_detail/25471.html?spm=51

Linux服务器 上登录MySql

Linux服务器 上登录MySql  : 1.mysql -uroot -p123 这样只指定用户,而不指定主机,这样默认以localhost登录. 2.mysql -hlocalhost -uroot -p -h数据库主机 -u用户 -p密码 -P端口号(大写P) 例如mysql -hlocalhost -uroot -p12345 -P3306 -p密码部分,可以直接指定密码,如果不指定,会提示输入密码. 我们先mysql -hlocalhost -uroot -p看看 是不是提示输入密码?

android数据库编程:连接服务器上的MySQL数据库详细示例

1 public class DatabaseDemo extends Activity { 2 private TextView textView; 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 // TODO Auto-generated method stub 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.acti

使用Navicat远程连接阿里云ECS服务器上的MySQL数据库

1.必须给服务器的安全组规则设置端口放行规则,在管理控制台中设置: 2.之后填写配置,授权对象是授权的IP,其中0.0.0.0/0为所有IP授权,之后保存; 3.Navicat使用的配置 在编辑连接处,要配置SSH和常规两项 在常规项填写配置,主机名填写:localhost,配置完成后,就使用Navicat远程连接阿里云ECS服务器上的MySQL数据库: 测试连接,完美成功. 原文地址:https://www.cnblogs.com/GreenForestQuan/p/11776130.html

在阿里云Linux服务器上安装MySQL

申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务器. 操作系统:Red Hat Enterprise Linux Server 5.4 64位. CPU:1核 内存:512M 硬盘空间:20G 带宽:1Mbps. 今天在这台云服务器上安装了基本环境(JDK.Tomcat和MySQL).本文主要在阿里云Linux云服务器安装MySQL全过程,以及对安装时遇到的问题进行记录. 下载MySQL服务器和客户端 访问MySQL的官网,进入其下载页面(http://dev.m