问题整理:ZABBIX4.0登录界面出现错误 SQL statement execution has failed “INSERT INTO sessions (sessionid,userid,..

简介: 问题整理:ZABBIX4.0登录界面出现错误 SQL statement execution has failed “INSERT INTO sessions (sessionid,userid,..

登录zabbix4.0界面,出现报错:SQL statement execution has failed "INSERT INTO sessions (sessionid,userid,lastaccess,status) VALUES ('6d1a0523bd8cd53179fcdfc3c397d343','1','1608889582','0')".

1675174696603.jpg

我遇到的情况是服务器突然断电,再开机后登录zabbix web界面出现此情况


初步判断为mysql数据库文件损坏,而且数据很重要,立马做了以下备份操作


1.发现数据库登录失败,挂掉了,服务已经不存在


日志疯狂报错

1675174717643.jpg

进入紧急模式,先导出一份数据出来,修改mariadb 的my.cnf配置

[root@zabbix ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
innodb_force_recovery = 6
innodb_purge_thread = 0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
innodb_force_recovery=0   表示当需要恢复时执行所有的恢复操作;
innodb_force_recovery=1   表示忽略检查到的corrupt页;
innodb_force_recovery=2   表示阻止主线程的运行,如主线程需要执行full purge操作,会导致crash;
innodb_force_recovery=3   表示不执行事务回滚操作;
innodb_force_recovery=4   表示不执行插入缓冲的合并操作;
innodb_force_recovery=5   表示不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交;
innodb_force_recovery=6   表示不执行前滚的操作,强制重启!

注:我这里的环境不加innodb_purge_thread = 0 服务依然启动不起来,具体原因不明

重新启动服务

[root@zabbix ~]# systemctl start mariadb
[root@zabbix ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2020-12-25 18:06:59 CST; 50s ago
  Process: 73481 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 73444 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 73480 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─73480 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─73665 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/maria...
12月 25 18:06:57 zabbix systemd[1]: Starting MariaDB database server...
12月 25 18:06:57 zabbix mariadb-prepare-db-dir[73444]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
12月 25 18:06:57 zabbix mariadb-prepare-db-dir[73444]: If this is not the case, make sure the /var/lib/mysql is empty before running ma...b-dir.
12月 25 18:06:57 zabbix mysqld_safe[73480]: 201225 18:06:57 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
12月 25 18:06:58 zabbix mysqld_safe[73480]: 201225 18:06:58 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
12月 25 18:06:59 zabbix systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.


导出zabbix数据库的数据到根目录命名为zabbix.sql

[root@zabbix ~]# mysqldump --single-transaction -u root -h 127.0.0.1 --password=vrgv123.  zabbix  > /zabbix.sql


导出之后,把之前的mariadb数据库重新安装,这里需要注意下,使用yum remove 卸载时,data数据可能还在,需要通过/etc/my.cfg文件查看下data具体路径,删除后,再重新安装mariadb,之后设置zabbix用户权限,导入zabbix.sql文件到zabbix数据库,,重新启动zabbix服务恢复正常

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
263 1
|
SQL 关系型数据库 BI
关系型数据库SQL server INSERT 语句
【8月更文挑战第3天】
445 9
|
SQL 关系型数据库 MySQL
INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
【8月更文挑战第7天】INSERT INTO t_a.tableName SELECT * FROM t_b.tableName 如何通过定义一个list对象,包含多个tableName,循环执行前面的sql,用MySQL的语法写
182 5
|
SQL 数据库
SQL INSERT INTO 语句
【7月更文挑战第12天】SQL INSERT INTO 语句。
339 12
|
SQL 数据库
SQL INSERT INTO 语句
【7月更文挑战第11天】SQL INSERT INTO 语句。
188 2
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
366 1
|
SQL 弹性计算 数据管理
数据管理DMS产品使用合集之sql server实例,已经创建了数据库,登录时提示实例已存在,该怎么处理
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
218 1
|
SQL 数据库
SQL INSERT INTO SELECT 语句
SQL INSERT INTO SELECT 语句
827 3
|
SQL 缓存 数据管理
数据管理DMS产品使用合集之打开多个SQL窗口,在关闭浏览器重新登录只剩第一个窗口且部分脚本丢失,是什么导致的
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
158 0

推荐镜像

更多