为什么默认';mysql';使用MyISAM引擎而不是InnoDB创建的数据库?
我使用的是MySQL 5.6版,它的默认MySQL引擎是InnoDB,也就是说,如果在创建表时没有指定引擎,那么它是使用InnoDB创建的 但是今天,我注意到默认的为什么默认';mysql';使用MyISAM引擎而不是InnoDB创建的数据库?,mysql,linux,Mysql,Linux,我使用的是MySQL 5.6版,它的默认MySQL引擎是InnoDB,也就是说,如果在创建表时没有指定引擎,那么它是使用InnoDB创建的 但是今天,我注意到默认的mysql数据库是使用“MyISAM”而不是InnoDB创建的 任何线索,为什么会这样 Database changed mysql> show tables; +---------------------------+ | Tables_in_mysql | +-----------------------
mysql
数据库是使用“MyISAM”而不是InnoDB创建的
任何线索,为什么会这样
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.00 sec)
这是我的cnf文件:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
init-connect='SET NAMES utf8'
max_connections = 500
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Recommended in standard MySQL setup
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
以下是其中一个表的mysqldump:
CREATE TABLE `columns_priv` (
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`User` char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges';
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 |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
重要
不要转换MySQL数据库中的MySQL系统表
(如用户或主机)转换为InnoDB类型。这是一个不受支持的
活动系统表必须始终为MyISAM类型
没有检查表是否为系统表。接得好+1谢谢。但是有任何线索,为什么MySQL 5.7和5.6中的默认引擎是InnoDB时,系统表保持MyISAM格式?@kingsmasher1:From 5.5 InnoDB是默认引擎,文档在这一点上不是很明确:
MySQL`和information_schema`数据库,实现了一些MySQL内部结构,仍然使用MyISAM。特别是,您不能切换授权表以使用InnoDB。
。请看。这对于最新的MySQL版本仍然有效吗?@W.M:我不能保证它同样适用于MariaDB,MariaDB的文档在这方面不是很明确,请看。您可以读取以下错误报告:。使用MariaDB 10.3.7,我无法重现错误报告中描述的错误。