Mysql

1286 - 未知的儲存引擎“InnoDB”

  • August 16, 2020

我正在嘗試使用圓形立方體,它最近剛剛壞了。我不知道這是否是由於最近發生的 MySQL 更新,但在 phpMyAdmin 中,如果我嘗試查看表,則會收到以下錯誤:

1286 - Unknown storage engine 'InnoDB'

mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MyISAM             | DEFAULT | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

[mysqld]
default-storage-engine=MyISAM
local-infile=0
symbolic-links=0
skip-networking
max_connections = 500
max_user_connections = 20
key_buffer = 512M
myisam_sort_buffer_size = 64M
join_buffer_size = 64M
read_buffer_size = 12M
sort_buffer_size = 12M
read_rnd_buffer_size = 12M
table_cache = 2048
thread_cache_size = 16K
wait_timeout = 30
connect_timeout = 15
tmp_table_size = 64M
max_heap_table_size = 64M
max_allowed_packet = 64M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 64M
query_cache_type = 1
low_priority_updates=1
concurrent_insert=ALWAYS
log-error=/var/log/mysql/error.log
tmpdir=/home/mysqltmp
myisam_repair_threads=4
[mysqld_safe]
open_files_limit = 8192
log-error=/var/log/mysql/error.log

[mysqldump]
quick
max_allowed_packet = 512M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

關於如何修復的想法?它曾經工作得很好。

觀察結果

  • 我看到my.cnf.
  • 在錯誤日誌中查找說明 mysqld 啟動失敗的原因的 Innodb 相關錯誤消息。

我的第一個猜測是查看ib_logfile0and ib_logfile1in /var/lib/mysql

如果它們被設置為與預設值不同的大小,那可能會阻止 mysqld 的啟動。innodb_log_file_size的預設值為 5M。

建議 #1

如果 RoundCube 的安裝覆蓋了my.cnf.,請查看您是否有之前的my.cnf. 把它放回原位並執行

service mysql start

建議 #2

取文件大小ib_logfile0並除以 1048576。假設它是 12M。

把它放進去my.cnf

[mysqld]
innodb_log_file_size = 12M

然後執行

service mysql start

試一試 !!!

只需刪除ib_logfileX文件並重新啟動mysql服務即可。

您將innodb-log-file-sizevar 更改為比已在 mysql 守護程序中設置的更大的大小。

引用自:https://dba.stackexchange.com/questions/36625