Mysql 8崩溃并显示以下消息"mysqld got signal 11"



有人可以帮助我解决以下Mysql错误吗?

我正在使用以下版本:mysql Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL(

此错误仅在生产服务器上发生。我已经尝试了本地和不同的环境,一切看起来都不错。提前谢谢你

13:02:37 UTC - mysqld got signal 11 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7fa57db99c00
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7fa583625d50 thread_stack 0x46000
/usr/sbin/mysqld(my_print_stacktrace(unsigned char*, unsigned long)+0x3d) [0x55764ef2ac9d]
/usr/sbin/mysqld(handle_fatal_signal+0x303) [0x55764e03cba3]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890) [0x7fa59ede1890]
/lib/x86_64-linux-gnu/libc.so.6(+0x18eb38) [0x7fa59d2bcb38]
/usr/sbin/mysqld(temptable::Row::copy_to_own_memory(std::vector<temptable::Column, temptable::Allocator<temptable::Column> > const&, unsigned long) const+0x456) [0x55764f4b70a6]
/usr/sbin/mysqld(temptable::Table::insert(unsigned char const*)+0xcf) [0x55764f4ba7ef]
/usr/sbin/mysqld(handler::ha_write_row(unsigned char*)+0x194) [0x55764e155bc4]
/usr/sbin/mysqld(Table_function::write_row()+0x1b) [0x55764e36b79b]
/usr/sbin/mysqld(Table_function_json::fill_json_table()+0x308) [0x55764e36dee8]
/usr/sbin/mysqld(Table_function_json::fill_result_table()+0xe4) [0x55764e36e004]
/usr/sbin/mysqld(MaterializedTableFunctionIterator::Init()+0x23) [0x55764e0fa233]
/usr/sbin/mysqld(NestedLoopIterator::Read()+0xa1) [0x55764e0fa411]
/usr/sbin/mysqld(JOIN::exec()+0x722) [0x55764ded6b02]
/usr/sbin/mysqld(Sql_cmd_dml::execute_inner(THD*)+0x2ee) [0x55764df5d23e]
/usr/sbin/mysqld(Sql_cmd_dml::execute(THD*)+0x458) [0x55764df64788]
/usr/sbin/mysqld(mysql_execute_command(THD*, bool)+0x1e9f) [0x55764df1135f]
/usr/sbin/mysqld(Prepared_statement::execute(String*, bool)+0x834) [0x55764df41574]
/usr/sbin/mysqld(Prepared_statement::execute_loop(String*, bool)+0xae) [0x55764df43d8e]
/usr/sbin/mysqld(mysqld_stmt_execute(THD*, Prepared_statement*, bool, unsigned long, PS_PARAM*)+0x1d1) [0x55764df45481]
/usr/sbin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0x2891) [0x55764df16bb1]
/usr/sbin/mysqld(do_command(THD*)+0x1a1) [0x55764df17b61]
/usr/sbin/mysqld(+0xf27010) [0x55764e02e010]
/usr/sbin/mysqld(+0x2329e79) [0x55764f430e79]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76db) [0x7fa59edd66db]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fa59d24f88f]

我通过将mysql版本更新到8.0.19解决了这个问题

此错误表示数据库数据已损坏。您可以尝试在恢复模式下启动mysql实例,如果幸运的话,您将能够进行备份。 取决于所选模式表可以只读

警告:在恢复模式下启动服务之前备份数据文件

要在恢复模式下启动 mysql,请在 mysql 启动参数中添加--innodb_force_recovery=<mode>

docker-compose 文件的示例:

version: '2'
services:
mysqrvice-mysql:
image: mysql:8.0.17
volumes:
- ~/volumes/MyProject/mysql/:/var/lib/mysql/
environment:
- MYSQL_USER=root
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=MyProject
ports:
- 3306:3306
command: mysqld --innodb_force_recovery=6 --lower_case_table_names=1 --skip-ssl --character_set_server=utf8mb4 --explicit_defaults_for_timestamp

MySQL 支持从06的值 Mysql 恢复文档

如果 mysql 成功启动,您可以使用mysqldump或任何其他工具来执行转储,您可以在新的 mysql 实例上还原这些转储

我通过在docker-compose.yml中添加命令来处理:

command: mysqld --innodb_force_recovery=6 --character_set_server=utf8mb4 --explicit_defaults_for_timestamp

当我的Mac mini断电时,我也遇到了这个问题

相关内容

最新更新