微魔在之前的文章中分享了一些MySQL的错误解决方法,最近在使用DireVPS的过程中又发生了类似的问题,虽然商家的标配是512M内存,但是因为众多原因(说明白就是超售咯),内存严重吃紧。特别是微魔尝试在上面玩Magento,被性能完爆(环境采用的是VestaCP),不过现在具体原因还不能一味的贵在商家身上,因为微魔发现VestaCP在性能,特别是MySQL经常出现问题(比如MySQL停止的问题)。回到正题,既然内存无法满足MySQL那就只有禁用InnoDB(MySQL自5.5后已经默认采用InnoDB作为数据库引擎),有鉴于网上现在很多教程还是针对5.1或者更早的版本,一些方法已经有了变化,因此微魔特别撰写本文,针对的版本是5.5和5.6。
如果你执意要玩儿Magento,Innodb引擎是不可缺少的…所以本文不适用Magento用户,请自行升级内存配置
0.确定版本
查看MySQL版本
mysql -V
或者可以登录MySQL使用select version();或status;命令查看
1.开始工作
关闭MySQL
service mysql stop
如果上面的命令无法关闭MySQL,则使用kill -9命令强制杀掉进程;
修改MySQL配置文件my.cnf(通常位于/etc/mysql/my.cnf)下加入如下字段
对于MySQL 5.5而言
default-storage-engine=MyISAM loose-skip-innodb loose-innodb-trx=0 loose-innodb-locks=0 loose-innodb-lock-waits=0 loose-innodb-cmp=0 loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 loose-innodb-cmpmem=0 loose-innodb-cmpmem-reset=0 loose-innodb-buffer-page=0 loose-innodb-buffer-page-lru=0 loose-innodb-buffer-pool-stats=0
对于MySQL 5.6而言
default-storage-engine=MyISAM default-tmp-storage-engine=MYISAM loose-skip-innodb loose-innodb-trx=0 loose-innodb-locks=0 loose-innodb-lock-waits=0 loose-innodb-cmp=0 loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 loose-innodb-cmpmem=0 loose-innodb-cmpmem-reset=0 loose-innodb-buffer-page=0 loose-innodb-buffer-page-lru=0 loose-innodb-buffer-pool-stats=0 loose-innodb-metrics=0 loose-innodb-ft-default-stopword=0 loose-innodb-ft-inserted=0 loose-innodb-ft-deleted=0 loose-innodb-ft-being-deleted=0 loose-innodb-ft-config=0 loose-innodb-ft-index-cache=0 loose-innodb-ft-index-table=0 loose-innodb-sys-tables=0 loose-innodb-sys-tablestats=0 loose-innodb-sys-indexes=0 loose-innodb-sys-columns=0 loose-innodb-sys-fields=0 loose-innodb-sys-foreign=0 loose-innodb-sys-foreign-cols=0
2.查看成效
登录MySQL
mysql -uroot -p你的密码
显示使用的数据库引擎
show engines
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | CSV | YES | CSV storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | InnoDB | NO | Supports transactions, row-level locking, and foreign keys | NULL | NULL | NULL | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | MyISAM | DEFAULT | MyISAM storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 9 rows in set (0.00 sec)
感谢分享啊,之前用5.1好像略有不同…
确实不一样,但是现在基本普及5.5了
啥情况,貌似无法留言。。。
呗插件拦截了,话说你的邮箱地址是瞎填的吧。。。囧