没有找到mysql。sock_zabbix 数据库所在分区占满

经过:闲来无事打开之前同事做的zabbix 页面发现发现报Mysql的错误,没来得及截图

重启mysql数据库之后,好使了几分钟

过一会又不行了,没有图形展示

进入数据库,show processlist; 发现有很多session延时的错误

排查了半天,发现是存储数据的空间占满了,导致mysql已经链接不上了

Mysql数据默认存储在了/下(汗~不是我做的 /给60G /home给930G 数据居然还存到/里面)

于是决定数据迁移

1.修改mysql数据存放的目录

要修改两个地方,其一是修改/etc/my.cnf文件中的datadir:

datadir=/yinzhengjie/data/mysql/

将其改为:

datadir=/home/mysql

还要修改/etc/init.d/mysqld文件,将datadir=改为:

datadir=/home/mysql

2.停止mysql服务

/etc/init.d/mysqld stop

3.创建新的数据存放目录

mkdir /home/mysql

4.将数据移动到新的数据库存放目录里面

mv /yinzhengjie/data/mysql/*/home/mysql

这里补充一点儿知识,innoDB引擎和MyISAM引擎的数据文件不一样。

针对MyISAM引擎, 数据文件以”*.frm”,”*.MYD”,”*.MYI”三个文件存储于”/var/lib/mysql”目录下的对应数据库文件夹中。直接将这些文件移动到新的数据存放目录里面,就可以。

针对innoDB引擎,数据则存储在”$innodb_data_home_dir” 的ibdata1文件中(一般情况),结构文件存在于table_name.frm中。

5.修改mysql数据库目录权限以及配置文件

chown mysql:mysql /home/mysql/ -R

6.修改socket

在两个地方修改socket,/etc/my.cnf

socket=/home/mysql/mysql.sock

创建一个连接文件到/var/lib/mysql/mysql.sock

ln -s /home/mysql/mysql.sock /var/lib/mysql/mysql.sock

7.重启mysql服务

执行:

/etc/init.d/mysqld start

发现问题:

3e0b5ac131282b885f7a34d65b9ba723.png

大概意思是权限全局可写,任何一个用户都可以写。mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件。

chmod 644 /home/mysql/my.cnf

重启正常:

9c425b866938c8ff7aa530125fe79ad6.png

特殊案例:(我这里没遇到)

开始对数据库进行读写操作,发现有这样的问题:

读写:

ERROR 1146 (42S02): Table ** doesn't exist

创建表:

ERROR 1005 (HY000): Can't create table ‘runoob_tbl' (errno: 13)

解决办法:

在/data/mysql目录下,删掉ib_logfile*文件,这样innoDB引擎的表就正常了。

再执行

mysql> REPAIR TABLE ***;

对于数据量比较大表,这个过程可能会比较慢。执行完成后,MyISAM引擎的表也正常了。

8.现在mysql正常了,数据库数据也都有了,我们就该看zabbix

重启zaibbix:

/etc/init.d/zabbix_server restart

网站访问报错:

database error

Error connecting to database: No such file or directory

解决办法:

ln -s /var/lib/mysql/mysql.sock /tmp/

vim /usr/local/php/etc/php.ini

mysqli.default_socket = /var/lib/mysql/mysql.sock

./php-fpm

再次访问:(正常了)

376f7ff13ee7594612e27209fda16330.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值