<blockquote id="2s7zs"></blockquote>

<address id="2s7zs"><em id="2s7zs"><button id="2s7zs"></button></em></address>
    1. <label id="2s7zs"><ruby id="2s7zs"></ruby></label>
          1. <output id="2s7zs"></output>

                免费索取

                SEO

                赚钱方法大揭秘》
                王通老师根据大量实战赚钱案例和经验撰写,它将彻底颠覆你的赚钱思维

                现在留言,即可免费获得

                姓名

                手机

                新书推荐
                我们的著作

                MySQL数据库innodb启动失败无法重启成功导出数据库的方法

                做seo优化就难免与网站打交道,我们很多SEO学员做网站时间长了,购买的虚拟主机总觉得速度不给力,还动不动挂掉,随着现在阿里云ECS价格不断下降,手上有2、3个网站的人几乎都会选择性价比更高的ECS云服务器,不想折腾的可能会选择轻量应用服务器,但配置受限,软件版本很低,也很难体验到速度和效率更高的mysql和php,最主要是性价比也确实不高,一台轻量应用服务器再加2、300元足可以配一台低配的标准的ECS云服务器了,数据库和php都可以选择自己想要的。


                前?#25945;?#23567;编在折腾公司香港服务器的时候就遇到了一个非常棘手的问题,如果处理不慎,也可?#36816;?#25439;失惨重,但我不能放弃,在这里做个小记。


                自mysql5.5版本以后,随着大家对Mysql数据库要求越来越高,也有越来越多的服务器环境在安装Mysql数据库的时候默认使用InnoDB数据库引擎做为默认引擎,而之前使用MyISAM数据库引擎的人也为了应对复杂的事务处理和高并发而转向InooDB。


                InnoDB数据库引擎应对复杂事件和并发是好很多但在这些好处面前,以前的网站运营人员也面临一个问题,那就是偶然有一天,你的服务器上数据库因一个误操作导致数据库服务挂掉了,怎么重启都重启不起来。这个时候,很多人都会想到把数据库文件备份,重新安装不就解决了吗?想法很美好,但现实确不是那么回事,innodb类型的数据库直接拷文件过去根本就读不出来。


                小编以前使用的数据库默认数据库引擎都是MyISAM,网站换服务器的时候,只需要把数据库文件打包复制到新的服务器就可以了,前段时间由于想尝试新的服务器软件和PHP7.2带来的优越性能,安装数据库的时候选择了mysql5.7.22版本,默认的数据库引擎则选择了InnoDB,昨天检查服务器的时候,发现数据库日志里面产生了很多错误提示,经检查,是一个wordpress网站的数据库一个表因不能被InnoDB读取不断的产生错误日志,通过phpmyadmin 对有问题的进行修复,由于数据库使用的数据库引擎是MyISAM,于是我点了修复,结果提示:2006, MySQL server has gone away ,然后我就想着试一下优化怎么样,点击后,phpmyadmin控制面板的root账号直接退出了,再登录就提示:connect(): (HY000/2002): No such file or directory ,再一看服务器上的网站,所有网站打开时都提示数据库连接失败,这下玩大了!


                但知道原因是数据库服务挂了,连接ssh重启数据库服务,结果提示:Starting MySQL. ERROR! The server quit without updating PID file (/www/data/twk2.pid),在网上找了一番后最后还是放弃了,备份原来的数据库,?#23545;?#26381;务器上的数据库,重新安装,安装完后重启都没问题,但原来数据库里面MyISAM类型的数据库文件拷入后在phpmyadmin里面查看都读得出来,也都没问题,但是innodb类型的数据库文件拷入后,读不出来,从网上看了很多innodb相关的数据库备份的内容也知道是ibdata1的文件,备份新数据库目录下面的ibdata1文件,停止数据库服务,?#22659;齣bdata1以及ib_logfile0和ib_logfile1两个文件夹,拷入原来备份的数据库下面的ibdata1文件到新的数据库目录,重启数据库,?#29615;?#24212;,还是提示:Starting MySQL. ERROR! The server quit without updating PID file (/www/data/twk2.pid),这可怎么办?


                换一种思路,想办法?#35328;?#26469;数据库中InnoDB类型的数据库导出来,然后再导入到新的数据库?#22995;?#26679;问题就解决了,在网上一番查找和测试,终于找到了解决问题的方法。步骤如下:


                以没重装数据库为例,还是原来的数据库,数据库服务启动不起来,?#22659;齣b_logfile0和ib_logfile1两个文件夹,修改数据库配置文件my.cnf,在[mysqld] 下面加入


                innodb_force_recovery = 6


                innodb_purge_thread = 0


                保存文件,重启数据库服务发现可以启动起来了,登录phpmyadmin控制面板也没问题了,这时候在具体的数据库(InnoDB类型)里面也可以看到文件了,但这些文件都是只读的,你如果这时候想登录网站后台,是登录不了的,所以这也不是长久解决问题的办法,所以直接使用工具导出数据库是最稳妥的办法。MyISAM类型的数据库不受这个影响,直接把文件拷贝到其它服务器上就可以使用。有时候查找问题比重装数据库用的时间更久,所以建议还是直?#26377;对?#21407;来的数据库重装比较快,然后新建所有数据库导入数据就行了。



                如果你已经?#23545;?#20102;服务器上的数据库进行了重装,那么备份新装的数据库所有文件,停止数据库服务,?#22659;?#26032;装的数据库目录下面ibdata1以及ib_logfile0和ib_logfile1两个文件夹,把旧数据库目录下面的ibdata1文件拷贝到新安装的数据库目录下面,然后修改数据库配置文件my.cnf,在[mysqld] 下面加入


                innodb_force_recovery = 6


                innodb_purge_thread = 0


                保存,重启数据库服务,登录phpmyadmin,导出原来想要导出的innodb类型的数据库,恢复新数据库的ibdata1文件,?#22659;齣b_logfile0和ib_logfile1两个文件夹以及数据库配置文件my.cnf加入的那两?#20889;?#30721;,保存,重启数据库服务就可以了,新建数据库把导出的数据库文件导入进去就行了。


                网上那些修复Starting MySQL. ERROR! The server quit without updating PID file (/www/data/twk2.pid)  的方法,例如:修改数据库目录权限,把配置文件里面的localhost修改成127.0.0.1,方法很多但几乎没用。


                如果不适应InnoDB这种数据库类型,觉得不方便,你也可以通过SQL命令把InnoDB类型的数据库转换成MyISAM类型,这样如果数据库服务出问题,只需要把数据库文件下载拷贝到新的数据库中就可以了。转换方法如下:以wordpress数据库为例,打开数据库,点到SQL

                输入:

                ALTER TABLE wp_commentmeta ENGINE=MYISAM;

                ALTER TABLE wp_termmeta ENGINE=MYISAM;

                ALTER TABLE wp_comments ENGINE=MYISAM;

                ALTER TABLE wp_links ENGINE=MYISAM;

                ALTER TABLE wp_options ENGINE=MYISAM;

                ALTER TABLE wp_postmeta ENGINE=MYISAM;

                ALTER TABLE wp_posts ENGINE=MYISAM;

                ALTER TABLE wp_terms ENGINE=MYISAM;

                ALTER TABLE wp_term_relationships ENGINE=MYISAM;

                ALTER TABLE wp_term_taxonomy ENGINE=MYISAM;

                ALTER TABLE wp_usermeta ENGINE=MYISAM;

                ALTER TABLE wp_users ENGINE=MYISAM;


                点执行,执行结束会给出执行结果,如果有提示错误,就按错误提示加入或者?#22659;?#23545;应的转换行命令,这样就可以?#35328;?#26469;的InnoDB类型的数据库转换成MyISAM了,如果你的网站程序不是wordpress,那只需要把表名改成你的数据库表名就可以了。


                做seo就是这样,折腾次数多了你遇到的问题多了,解决问题的方法也就多了,记得问题解决了别记了做个记录分享给大家,帮助下次遇到这个问题的朋友,?#19981;?#23601;转发吧。



                分享到:


                在线客服?#20302;?/a>
                重庆彩精灵时时彩软件
                <blockquote id="2s7zs"></blockquote>

                <address id="2s7zs"><em id="2s7zs"><button id="2s7zs"></button></em></address>
                1. <label id="2s7zs"><ruby id="2s7zs"></ruby></label>
                      1. <output id="2s7zs"></output>

                            <blockquote id="2s7zs"></blockquote>

                            <address id="2s7zs"><em id="2s7zs"><button id="2s7zs"></button></em></address>
                            1. <label id="2s7zs"><ruby id="2s7zs"></ruby></label>
                                  1. <output id="2s7zs"></output>