每次我尝试备份或检查Windows服务器2012上的所有表mysql服务器崩溃, 我在我的开发环境中使用XAMPP堆栈。 数据库加密在DB中有超过1100个表。 我在下面列出了日志。
InnoDB:页面转储结束 2017-09-24 13:58:35 7dc InnoDB:未压缩页面,在field1 2521749199中存储校验和,计算字段1的校验和:crc32 2344073126,innodb 1121903210,无3735928559,在field2 0中存储校验和,计算字段2的校验和:crc32 2344073126, innodb 2892594725,none 3735928559,page LSN 0 2936733816,页面末尾0的低4字节LSN,页码(如果已存储到页面)34,空格id(如果使用> = MySQL-4.1.1创建并已存储) 1767 InnoDB:页面类型17855意思是INDEX InnoDB:Page可能是索引ID为1522的索引页面 InnoDB :(索引" PRIMARY"表"加密"。" 300-token") 2017-09-24 13:58:35 2012 [ERROR] InnoDB:您的操作系统也可能损坏了自己的文件缓存。 2017-09-24 13:58:35 2012 [错误] InnoDB:重新启动计算机会删除错误。 2017-09-24 13:58:35 2012 [ERROR] InnoDB:如果损坏的页面是索引页面,你也可以尝试 2017-09-24 13:58:35 2012 [错误] InnoDB:通过转储,丢弃和重新导入来修复损坏 2017-09-24 13:58:35 2012 [错误] InnoDB:腐败表。你可以使用CHECK 2017-09-24 13:58:35 2012 [错误] InnoDB:用于扫描您的表以查找损坏的表。 2017-09-24 13:58:35 2012 [错误] InnoDB:另请参阅http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html强制恢复。 2017-09-24 13:58:35 7dc InnoDB:断言2012年文件buf0lru.cc第2394行中的断言失败 InnoDB:失败的断言:bpage-> buf_fix_count == 0 InnoDB:我们故意生成一个内存陷阱。 InnoDB:向http://bugs.mysql.com提交详细的错误报告。 InnoDB:如果你反复断言失败或崩溃,甚至 InnoDB:在mysqld启动之后,可能会有 InnoDB:InnoDB表空间中的损坏。请参阅 InnoDB:http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html InnoDB:关于强迫恢复。 170924 13:58:35 [错误] mysqld得到异常0x80000003; 这可能是因为你遇到了一个bug。这个二进制文件也有可能 或者它所链接的其中一个图书馆是腐败的,不正确的, 或配置错误。此错误也可能是由硬件故障引起的。
要报告此错误,请参阅https://mariadb.com/kb/en/reporting-bugs
我们会尽力挖掘一些有希望提供帮助的信息 诊断问题,但由于我们已经崩溃,有些事情是 肯定是错的,这可能会失败。
服务器版本:10.1.22-MariaDB key_buffer_size = 16777216 read_buffer_size = 262144 max_used_connections = 1 max_threads = 1001 thread_count = 1 mysqld可能最多可以使用 key_buffer_size +(read_buffer_size + sort_buffer_size)* max_threads = 787106 K字节的内存希望没问题;如果没有,减少一些 等式中的变量。
线程指针:0x0尝试回溯。您可以使用以下内容 了解mysqld死亡的信息。如果您没有看到任何消息 在此之后,出现了严重的错误...... mysqld.exe!my_parameter_handler()mysqld.exe!my_wildcmp_mb_bin() mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z() mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z() mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z() mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z() mysqld.exe!?save_in_result_field @项目@@ UAEX_N @ Z() KERNEL32.DLL!BaseThreadInitThunk() ntdll.dll中!RtlInitializeExceptionChain() ntdll.dll!RtlInitializeExceptionChain()手册页 http://dev.mysql.com/doc/mysql/en/crashing.html包含信息 这应该可以帮助你找出导致崩溃的原因。
我希望有人能帮助我 感谢。
答案 0 :(得分:0)
根据您提问中的内容, "服务器版本:10.1.22-MariaDB key_buffer_size = 16777216 read_buffer_size = 262144 max_used_connections = 1 max_threads = 1001 thread_count = 1 mysqld有可能最多使用key_buffer_size +(read_buffer_size + sort_buffer_size)* max_threads = 787106 K .. .."
上面有#include "dlist.hpp"
using namespace std;
dlist::node* dlist::at(int n) const{
if(n <= 0)
return head();
else if(n >= size())
return nullptr;
else{
node* temp = head();
for(int i = 0; i < n; i++){
temp = temp->next;
}
return temp;
}
}
void dlist::insert(node* previous, int value){
if(previous == head())
{
push_front(value);
}
else if(previous == tail())
{
push_back(value);
}
else if(previous == nullptr){
_head->value = value;
_head->prev = nullptr;
_head->next = nullptr;
_tail = head();
}
else{
node* temp = new node;
temp->value = value;
temp->next = previous->next;
previous->next = temp;
temp->prev = previous;
if(temp->next != nullptr){
temp->next->prev = previous;
}
}
}
void dlist::remove(node* which){
node* temp = which;
if(which != nullptr){
which->prev->next = which->next;
temp->next->prev = temp->prev;
free(temp);
}
}
void dlist::push_back(int value){
node* temp = new node;
temp->value = value;
temp->prev = _tail;
_tail = temp;
}
void dlist::push_front(int value){
node* temp = new node;
temp->value = value;
temp->next = head();
temp->prev = nullptr;
_head->prev = temp;
_head = temp;
}
void dlist::pop_front(){
node* temp = _head->next;
temp->prev = nullptr;
_head->next = nullptr;
_head = temp;
free(temp);
}
void dlist::pop_back(){
node*temp = _tail->prev;
temp->next = nullptr;
_tail->prev = nullptr;
_tail = temp;
free(temp);
}
int dlist::size() const{
node* temp = head();
int counter = 0;
while(temp != nullptr){
counter++;
temp = temp->next;
}
return counter;
}
bool dlist::empty() const{
return head() == tail();
}
bool operator== (const dlist& a, const dlist& b){
dlist::node* tempA = a.head();
dlist::node* tempB = b.head();
if(a.size() != b.size())
return false;
else{
while( tempA != nullptr)
{
if(tempA->value != tempB->value)
return false;
else {
tempA = tempA->next;
tempB = tempB->next;
}
}
return true;
}
}
dlist operator+(const dlist& a, const dlist& b)
{
dlist::node* tempB = b.head();
dlist::node* tempA = a.head();
dlist c;
while(tempA != nullptr)
{
c.push_back(tempA->value);
tempA = tempA->next;
}
while(tempB != nullptr)
{
c.push_back(tempB->value);
tempB = tempB->next;
}
return c;
}
dlist reverse(const dlist& l)
{
return l;
}
线索 - 检查my.ini或.cnf中的max_connections。将max_connections降低到= 100可能会或可能无法帮助您通过BaseThreadInitThunk()ntdll.dll!