DB失败后如何恢复InnoDB?

问题描述:

我正在尝试安装mysqlgovernor,最后我得到了这个烂摊子,现在我的所有网站都关闭了。DB失败后如何恢复InnoDB?

[email protected] [~]# systemctl status mariadb.service 
● mariadb.service - MariaDB database server 
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) 
    Drop-In: /etc/systemd/system/mariadb.service.d 
      └─migrated-from-my.cnf-settings.conf 
    Active: failed (Result: exit-code) since Sun 2016-03-06 06:35:31 CET; 5s ago 
    Process: 6244 ExecStartPost=/usr/sbin/mariadb-wait-ready $MAINPID (code=exited, status=1/FAILURE) 
    Process: 6243 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=0/SUCCESS) 
    Process: 6205 ExecStartPre=/usr/sbin/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) 
    Process: 6179 ExecStartPre=/usr/sbin/mariadb-check-socket (code=exited, status=0/SUCCESS) 
Main PID: 6243 (code=exited, status=0/SUCCESS) 
    CGroup: /system.slice/mariadb.service 

Mar 06 06:35:28 panel.uhlhosting.ch mariadb-prepare-db-dir[6205]: touch: cannot touch 'panel.uhlhosting.ch.err': Permission denied 
Mar 06 06:35:28 panel.uhlhosting.ch mariadb-prepare-db-dir[6205]: chown: cannot access 'panel.uhlhosting.ch.err': No such file or directory 
Mar 06 06:35:28 panel.uhlhosting.ch mariadb-prepare-db-dir[6205]: chmod: cannot access 'panel.uhlhosting.ch.err': No such file or directory 
Mar 06 06:35:29 panel.uhlhosting.ch mysqld_safe[6243]: 160306 06:35:29 mysqld_safe Logging to '/var/lib/mysql/panel.uhlhosting.ch.err'. 
Mar 06 06:35:29 panel.uhlhosting.ch mysqld_safe[6243]: 160306 06:35:29 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
Mar 06 06:35:30 panel.uhlhosting.ch mysqld_safe[6243]: 160306 06:35:30 mysqld_safe mysqld from pid file /var/lib/mysql/panel.uhlhosting.ch.pid ended 
Mar 06 06:35:31 panel.uhlhosting.ch systemd[1]: mariadb.service: control process exited, code=exited status=1 
Mar 06 06:35:31 panel.uhlhosting.ch systemd[1]: Failed to start MariaDB database server. 
Mar 06 06:35:31 panel.uhlhosting.ch systemd[1]: Unit mariadb.service entered failed state. 
Mar 06 06:35:31 panel.uhlhosting.ch systemd[1]: mariadb.service failed. 
[email protected] [~]# 

这是我的错误列表:

InnoDB的:螺纹140010623854336文件buf0buf.cc行断言失败2850

这里是工作MariaDB的重新安装后,并禁用InnoDB的数据库,但我们不希望没有他们。

[email protected] [~]# systemctl status mariadb.service 
● mariadb.service - MariaDB database server 
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) 
    Drop-In: /etc/systemd/system/mariadb.service.d 
      └─migrated-from-my.cnf-settings.conf 
    Active: active (running) since Sun 2016-03-06 10:16:12 CET; 29min ago 
Main PID: 16551 (mysqld) 
    Status: "Taking your SQL requests now..." 
    CGroup: /system.slice/mariadb.service 
      └─16551 /usr/sbin/mysqld 

Mar 06 10:16:12 panel.uhlhosting.ch mysqld[16551]: 2016-03-06 10:16:12 140128996632704 [Note] /usr/sbin/mysqld (mysqld 10.1.12-MariaDB) starting as process 16551 ... 
Mar 06 10:16:12 panel.uhlhosting.ch mysqld[16551]: 2016-03-06 10:16:12 140128996632704 [Note] Plugin 'InnoDB' is disabled. 
Mar 06 10:16:12 panel.uhlhosting.ch mysqld[16551]: 2016-03-06 10:16:12 140128996632704 [Note] Plugin 'FEEDBACK' is disabled. 
Mar 06 10:16:12 panel.uhlhosting.ch mysqld[16551]: 2016-03-06 10:16:12 140128996632704 [Note] Server socket created on IP: '::'. 
Mar 06 10:16:12 panel.uhlhosting.ch mysqld[16551]: 2016-03-06 10:16:12 140128995883776 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1286: Unknown storage engine 'InnoDB' 
Mar 06 10:16:12 panel.uhlhosting.ch mysqld[16551]: 2016-03-06 10:16:12 140128996632704 [Note] /usr/sbin/mysqld: ready for connections. 
Mar 06 10:16:12 panel.uhlhosting.ch mysqld[16551]: Version: '10.1.12-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server 
Mar 06 10:16:12 panel.uhlhosting.ch systemd[1]: Started MariaDB database server. 
Mar 06 10:16:54 panel.uhlhosting.ch systemd[1]: Started MariaDB database server. 
Mar 06 10:17:00 panel.uhlhosting.ch systemd[1]: Started MariaDB database server. 

Server.err

my.cnf file

+0

你采取了数据库和服务器的完整备份吗?如果您正在尝试解决这个问题,那么您有可能会做出更糟糕的事情 - 因此请将快照视为您做的第一件事。 – halfer

+0

@halfer是备份到位。 –

+0

你有多少内存? –

请看前三行的错误日志: MariaDB的没有权限在哪里panel.uhlhosting.ch.err所在的目录写

您可以通过将此目录的所有者/组更改为mysql:mysql by chown -R mysql:mysql /path/to/directory/(如果它在Linux上)来解决此问题。

+0

这不仅是一个简单的权限问题,我尝试了很多方法,没有任何工作来恢复我的数据库;现在所有的数据库都在MyISAM中,如果我启用InnoDB,mariadb再次死亡。 –

+0

它们必须在MyISAM中,而这是默认格式tabels存储在,当innodb被禁用或未知时,如它写入您的错误日志。我认为你应该停止复制,并首先用innodb解决这个问题。 – TheFan1968

+0

我同意,告诉我如何解决这个问题:)这是我试图在这里得到一些见解,我不是MySQL的大师。 –