<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>深度VPS &#187; 失败</title>
	<atom:link href="http://www.deepvps.com/tag/%E5%A4%B1%E8%B4%A5/feed" rel="self" type="application/rss+xml" />
	<link>http://www.deepvps.com</link>
	<description>专注VPS技术，关注前端技术</description>
	<lastBuildDate>Sat, 04 Feb 2023 14:00:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Webmin 后台Mysql数据库升级导致Mysql启动失败的解决办法</title>
		<link>http://www.deepvps.com/solve-webmin-upgrade-mysq-failures.html</link>
		<comments>http://www.deepvps.com/solve-webmin-upgrade-mysq-failures.html#comments</comments>
		<pubDate>Mon, 18 Oct 2010 06:06:13 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS控制面板]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Webmin]]></category>
		<category><![CDATA[升级]]></category>
		<category><![CDATA[启动失败]]></category>
		<category><![CDATA[失败]]></category>
		<category><![CDATA[数据库]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=608</guid>
		<description><![CDATA[deepvps昨天在Webmin后台看到有Mysql最新版本升级，就顺手点了升级。一般情况下Webmin的软件升级很容易，都是在后台点升级后自动升级完成的。但是昨天没想到Mysql升级完后居然不能启动，提示启动失败。
错误提示如下：
无法启动数据库 :
MySQL Daemon failed to start.
Starting mysqld:  [FAILED]

deepvps查看了Mysql的启动日志，显示如下：
101014 13:56:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
101014 14:01:54 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
101014 14:01:54 [Note] Plugin &#8216;InnoDB&#8217; is disabled.
/usr/libexec/mysqld: Table &#8216;mysql.plugin&#8217; doesn&#8217;t exist
101014 14:01:54 [ERROR] Can&#8217;t open the mysql.plugin table. Please run mysql_upgrade to create it.
101014 14:01:54 [ERROR] /usr/libexec/mysqld: unknown option &#8216;&#8211;skip-bdb&#8217;
101014 14:01:54 [ERROR] [...]]]></description>
			<content:encoded><![CDATA[<p>deepvps昨天在Webmin后台看到有Mysql最新版本升级，就顺手点了升级。一般情况下Webmin的软件升级很容易，都是在后台点升级后自动升级完成的。但是昨天没想到Mysql升级完后居然不能启动，提示启动失败。</p>
<p>错误提示如下：</p>
<blockquote><p>无法启动数据库 :<br />
MySQL Daemon failed to start.<br />
Starting mysqld:  [FAILED]</p></blockquote>
<p><span id="more-608"></span><br />
deepvps查看了Mysql的启动日志，显示如下：</p>
<blockquote><p>101014 13:56:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended<br />
101014 14:01:54 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql<br />
101014 14:01:54 [Note] Plugin &#8216;InnoDB&#8217; is disabled.<br />
/usr/libexec/mysqld: Table &#8216;mysql.plugin&#8217; doesn&#8217;t exist<br />
101014 14:01:54 [ERROR] Can&#8217;t open the mysql.plugin table. Please run mysql_upgrade to create it.<br />
101014 14:01:54 [ERROR] /usr/libexec/mysqld: unknown option &#8216;&#8211;skip-bdb&#8217;<br />
101014 14:01:54 [ERROR] Aborting</p>
<p>101014 14:01:54 [Note] /usr/libexec/mysqld: Shutdown complete</p>
<p>101014 14:01:54 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended<br />
101014 14:02:57 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql<br />
101014 14:02:57 [Note] Plugin &#8216;InnoDB&#8217; is disabled.<br />
/usr/libexec/mysqld: Table &#8216;mysql.plugin&#8217; doesn&#8217;t exist<br />
101014 14:02:57 [ERROR] Can&#8217;t open the mysql.plugin table. Please run mysql_upgrade to create it.<br />
101014 14:02:57 [ERROR] /usr/libexec/mysqld: unknown option &#8216;&#8211;skip-bdb&#8217;<br />
101014 14:02:57 [ERROR] Aborting</p>
<p>101014 14:02:57 [Note] /usr/libexec/mysqld: Shutdown complete</p></blockquote>
<p>通过启动日志的错误提示，deepvps在Google一顿搜索，终于搞明白了错误的原因。Mysql从5.0升级到5.1的时候，数据库的结构发生了一些变化，而Webmin 在升级Mysql的时候，升级不完全所以导致了Mysql在升级收启动失败的问题。</p>
<p>现在我们只能通过手动的方法修复这个问题了：</p>
<p>1，修改不兼容的数据库参数</p>
<p>在最新的Mysql 5.1.50版中已经废除了skip-bdb参数。所以现在我们需要在Mysql的配置文件里面删除这个参数。而skip-locking改为了skip-external-locking，skip-innodb改为了loose-skip-innodb。</p>
<p>首先进入/etc 目录，编辑my.cnf<br />
命令：先cd /etc<br />
再输入 vi my.cnf</p>
<p>在[mysqld]下面删除以下三行：</p>
<blockquote><p>skip-locking<br />
skip-bdb<br />
skip-innodb</p></blockquote>
<p>加入以下两行：</p>
<blockquote><p>skip-external-locking<br />
loose-skip-innodb</p></blockquote>
<p>2，修改完参数后，Mysql数据库应该就可以启动了，然后进行第2步的修改。</p>
<p>最新的Mysql 5.1.50版实现了支持无需重启服务器就能在运行时加载或卸载API插件。这个特性需要用到mysql.plugin表，可以运行 &#8220;mysql_upgrade&#8221; 命令来创建该表 。</p>
<p>3，最后在Mysql命令行方式下运行，&#8221;mysql_repair&#8221; 命令修复整个数据库，这样就算彻底解决了Mysql数据库升级失败的问题了。</p>
<p>现在我们在来看一下Mysql的日志：</p>
<blockquote><p>101014 21:54:39 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended<br />
101014 21:54:41 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql<br />
101014 21:54:41 [Note] Plugin &#8216;InnoDB&#8217; is disabled.<br />
101014 21:54:43 [Note] Event Scheduler: Loaded 0 events<br />
101014 21:54:43 [Note] /usr/libexec/mysqld: ready for connections.<br />
Version: &#8216;5.1.50&#8242; socket: &#8216;/var/lib/mysql/mysql.sock&#8217; port: 3306 MySQL Community Server (GPL) by Utter Ramblings</p></blockquote>
<p>可以看到已经没有任何问题了，Mysql运行正常，问题解决。^_^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/solve-webmin-upgrade-mysq-failures.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
