在开始之前就最小化你的MySQL

广告位招租
扫码页面底部二维码联系

我的新网站放在一台香港的VPS上,采用我【转载请注明来源】【本文受版权保护】以前介绍过的lnmp一键安装包安装的服务器环境本文作者:唐霜,转载请注明出处。。但是有一个问题,就是安装好的MySQL【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】默认采用innodb引擎,对于我们这种小【未经授权禁止转载】【原创内容,转载请注明出处】网站而言,无疑会给服务器造成巨大的压力,本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。但最最令我烦恼的,是MySQL在运行一段【本文首发于唐霜的博客】【原创内容,转载请注明出处】时间后,开始出现宕机情况,现象是mysq转载请注明出处:www.tangshuang.net【未经授权禁止转载】l.pid文件丢失。如果登录到服务器查看本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】netstat -nptl,发现不存在m本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.netysql服务,于是重启服务,结果在重启的【转载请注明来源】【未经授权禁止转载】过程中提示不存在进程pid文件。
【访问 www.tangshuang.net 获取更多精彩内容】原创内容,盗版必究。 可以大致判断,MySQL的innodb【关注微信公众号:wwwtangshuangnet】【本文受版权保护】导致了这个问题的产生,因为innodb引【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。擎的特殊处理方式,会在MySQL进程中更本文版权归作者所有,未经授权不得转载。转载请注明出处:www.tangshuang.net多的利用资源。当然,如果机器性能OK的话本文作者:唐霜,转载请注明出处。原创内容,盗版必究。,采用innodb可以带来更多好处,但是原创内容,盗版必究。【转载请注明来源】对于机器性能很渣的我,只能选择放弃使用i【原创内容,转载请注明出处】原创内容,盗版必究。nnodb,而重新采用MyISAM引擎。
本文作者:唐霜,转载请注明出处。【作者:唐霜】 不过,在切换引擎的过程中,会遇到非常严【作者:唐霜】转载请注明出处:www.tangshuang.net重的问题:innodb产生的数据库文件将原创内容,盗版必究。【原创内容,转载请注明出处】无法再MyISAM引擎下被识别。所以当切本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。换成innodb之后,MySQL是无法重著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。启的,或者就算重启,也不能正确读取原有的著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。数据库表。
著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。 因此,如果你想解决这个问题,可以按照本【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net文的方法操作。

著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。【本文受版权保护】【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】

两种选择:在开始之前就行动本文作者:唐霜,转载请注明出处。

转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。

最好的行动方式是在所有事情发生之前就去执【作者:唐霜】【本文受版权保护】行,在你安装完环境之后,就按照本文的方式【版权所有】唐霜 www.tangshuang.net【本文受版权保护】去做,将有助于你产生更少的烦恼。
本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。 但是,也有可能你不幸的在运行了很久的服本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。务器之后,才发现这个问题,所以也不得不绕本文版权归作者所有,未经授权不得转载。【作者:唐霜】一下远路。

本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.net【本文受版权保护】本文版权归作者所有,未经授权不得转载。

使用sql备份数据库【转载请注明来源】

原创内容,盗版必究。原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。

虽然在系统中,数据库其实是以文件的形式保【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。存的,可以通过复制文件来实现数据库的转移【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】。但是因为上面所说的,两种引擎无法相互识【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。别,所以最好的解决办法,是先导出sql,【原创不易,请尊重版权】【作者:唐霜】待切换成功之后,导入sql恢复数据库。当【访问 www.tangshuang.net 获取更多精彩内容】【转载请注明来源】然,这仅限于数据量小的时候,如果数据量大【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】……你不可能切换引擎。

【关注微信公众号:wwwtangshuangnet】【转载请注明来源】本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】

开始行动本文作者:唐霜,转载请注明出处。

【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。【本文受版权保护】

接下来,就是你要做的事情,按照步骤一步一【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。步的去做。
【访问 www.tangshuang.net 获取更多精彩内容】【未经授权禁止转载】 1. 停止正在运行的MySQL【原创内容,转载请注明出处】
未经授权,禁止复制转载。【原创内容,转载请注明出处】 2. 备份相关文件【版权所有】唐霜 www.tangshuang.net
【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】 你需要备份的文件有如下列表,以防在未来本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】你可能恢复它们。

未经授权,禁止复制转载。【转载请注明来源】本文作者:唐霜,转载请注明出处。

/etc/my.cnf/usr/loca【版权所有,侵权必究】【本文受版权保护】l/mysql/var  ## 运行目录【作者:唐霜】【作者:唐霜】,这是lnmp默认的MySQL路径,你需【版权所有,侵权必究】本文版权归作者所有,未经授权不得转载。要根据你的情况备份,lnmp把所有的数据【未经授权禁止转载】【版权所有】唐霜 www.tangshuang.net,运行时文件都放在这个目录了,不推荐这种

【关注微信公众号:wwwtangshuangnet】【原创内容,转载请注明出处】原创内容,盗版必究。

/usr/local/mysql/dat【转载请注明来源】未经授权,禁止复制转载。a  ## 我喜欢把所有的数据库放在这个本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net目录,你根据你的情况,备份数据库
【版权所有,侵权必究】未经授权,禁止复制转载。 上面var和data实际上我们需要的,转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。是备份数据库,或者有可能涉及一些mysq【关注微信公众号:wwwtangshuangnet】【本文首发于唐霜的博客】l的东西。总之,你要能确保能恢复到修改之【本文首发于唐霜的博客】【访问 www.tangshuang.net 获取更多精彩内容】前的状态。

【转载请注明来源】本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net
原创内容,盗版必究。【未经授权禁止转载】【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.net

3. 修改my.cnf本文版权归作者所有,未经授权不得转载。
【本文受版权保护】未经授权,禁止复制转载。 修改/etc/my.cnf文件,直接全本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。部替换吧:

【原创不易,请尊重版权】【原创内容,转载请注明出处】【原创内容,转载请注明出处】
[client]
port        = 3306socket      = /tmp/mysql.sock
[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
datadir     = /usr/local/mysql/data
pid-file    = /usr/local/mysql/var/mysqld.pid
log-error   = /usr/local/mysql/var/mysqld-error.log
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 8
query_cache_size = 8M
tmp_table_size = 16M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log-bin = mysql-binbin
log_format = mixed
server-id = 1
expire_logs_days = 10
innodb=OFF
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
default-storage-engine=MyISAM
default_tmp_storage_engine=MyISAM

[mysqldump]
quickmax_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

上面那些具体的值可以根据你的机器的内存和【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。cpu做调整。这是我的机器的配置,1G内转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。存1核。
原创内容,盗版必究。【未经授权禁止转载】 注:上面的这个配置禁用了Innodb,【本文受版权保护】本文版权归作者所有,未经授权不得转载。使得默认引擎是MyISAM。
【访问 www.tangshuang.net 获取更多精彩内容】【本文首发于唐霜的博客】 4. sql备份数据【访问 www.tangshuang.net 获取更多精彩内容】
【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】 5. 搬迁mysql的核心数据库【作者:唐霜】
【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】 mysql拥有两个核心的数据库,分别是本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.netmysql和performance_sc未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。hema这两个库,它们保存了mysql基【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。本的一些设置和一些结构。
【未经授权禁止转载】【版权所有】唐霜 www.tangshuang.net 注意:如果你启用了pma__相关的功能,本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】千万要小心,因为这些表里面记录了原有的数原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。据库相关信息,你需要在这个步骤之前进入p【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】hpmyadmin,备份完数据之后,删除转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。所有自己创建的数据库,恢复mysql初始原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】化的时候的样子。
【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net 把原来的var/mysql、var/p本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。erformance_schema直接复转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net制到data目录中(data目录是新创建未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net的,所以是空的)。另外,data目录还需【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】要有mysql用户的可写权限。
【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。 在data目录中创建一个mysql-b【转载请注明来源】原创内容,盗版必究。in.index空文件,同样要给mysq著作权归作者所有,禁止商业用途转载。【版权所有】唐霜 www.tangshuang.netl用户可写权限。
【作者:唐霜】原创内容,盗版必究。 这样,在data中就有两个文件夹和一个本文版权归作者所有,未经授权不得转载。【未经授权禁止转载】空文件。
【版权所有】唐霜 www.tangshuang.net【本文首发于唐霜的博客】 6. 重启mysql【未经授权禁止转载】

【本文受版权保护】本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.net
sudo service mysql restart

7. 检查错误【转载请注明来源】
【原创内容,转载请注明出处】【原创内容,转载请注明出处】 如果能够重启的话,就算成功了,如果没有原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】成功,则可以在var/mysqld-er【本文受版权保护】【未经授权禁止转载】ror.log文件里面找到错误原因。根据【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。这些错误原因进行调整,如果实在不知道怎么【作者:唐霜】本文版权归作者所有,未经授权不得转载。办,也可以把这些错误原因贴到社区,寻求大本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】神帮忙。
本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。 8. 恢复数据【作者:唐霜】
原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】 登录到phpmyadmin,创建原来的转载请注明出处:www.tangshuang.net【未经授权禁止转载】数据库,导入刚才备份的sql文件。

【关注微信公众号:wwwtangshuangnet】【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net

总结本文版权归作者所有,未经授权不得转载。

【本文受版权保护】转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。【本文首发于唐霜的博客】【未经授权禁止转载】

上面的步骤里面,最核心的有两个点,一是配【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net置文件的内容,相当于通过配置文件实现引擎【原创不易,请尊重版权】本文版权归作者所有,未经授权不得转载。切换;二是数据库的备份和转移,这里看上去【原创内容,转载请注明出处】【本文首发于唐霜的博客】挺轻松,但实际上,转移数据库过程里面各种未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.net兼容性问题还是比较复杂的。

转载请注明出处:www.tangshuang.net【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.net原创内容,盗版必究。【转载请注明来源】

2016-09-01 9406

为价值买单,打赏一杯咖啡

本文价值94.06RMB
已有1条评论
  1. […] 补充:在开始运行网站之前,还有一个建议,就是阅读一下《在开始之前就最小化你的MySQL》,如果你也和我一样,是为小型网站准备,就可以尝试这种方法,如果是土豪用户,则可以忽略。 […]