Mysql 数据库故障后如何恢复InnoDB?

Mysql 数据库故障后如何恢复InnoDB?,mysql,database,mariadb,Mysql,Database,Mariadb,我试图安装mysqlgovernor,结果弄得一团糟,现在我所有的网站都关闭了 root@panel [~]# 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

我试图安装mysqlgovernor,结果弄得一团糟,现在我所有的网站都关闭了

root@panel [~]# 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.
root@panel [~]#
以下是我的错误列表:

InnoDB:文件buf0buf.cc第2850行中的线程140010623854336中的断言失败

这是重新安装和禁用InnoDB后的工作原理,但我们不希望没有它们

root@panel [~]# 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.


请查看错误日志的前三行: MariaDB无权在panel.uhlhosting.ch.err所在的目录上写入


如果在linux上,您可以通过将此目录的所有者/组更改为mysql:mysql,方法是
chown-R mysql:path/to/directory/

这不仅仅是一个简单的权限问题,我尝试了很多方法,但都没有恢复我的数据库;现在一切正常;如果启用InnoDB,则mariadb将再次死亡。当InnoDB被禁用或未知时,当InnoDB写入错误日志时,默认格式选项卡存储在MyISAM中时,它们必须在MyISAM中。我认为你应该停止复制,首先用innodb解决这个问题。我同意,告诉我如何解决这个问题:)这就是我试图在这里得到的一些见解我不是MySQL专家。所以你肯定是在错误的地方工作;)。通过更改sql中的存储引擎,可以从myisam表中获取innodb表:
alter table mytable engine=innodb请首先通过编辑my.cnf解除复制,并使用启用的innodb重新启动复制。问题
160306 06:45:18从pid文件/var/lib/mysql/panel.uhlhosting.ch.pid结束160306 06:50:18 mysqld_安全启动mysqld守护程序,数据库来自/var/lib/mysql
,但没有解决,每次启动时都会发生此问题,我读了错误日志。另一个数据库是否在同一硬件上运行?是否对数据库和服务器进行了完整备份?如果你正在尝试解决这个问题,那么你所做的事情很可能会让事情变得更糟,所以你要做的第一件事就是拍一张快照。@halfer是的,备份已经准备好了。你有多少内存?@RickJames 24 GB内存。