<?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>【知行合一】-Poople&#039;s Blog &#187; Mysql</title>
	<atom:link href="http://99dev.net/archives/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://99dev.net</link>
	<description>智巧终归庸俗，雄谋只余虚话</description>
	<lastBuildDate>Wed, 12 Oct 2011 01:19:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Linux获取程序编译参数</title>
		<link>http://99dev.net/archives/974</link>
		<comments>http://99dev.net/archives/974#comments</comments>
		<pubDate>Thu, 02 Dec 2010 09:23:54 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[其他Linux技术]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://99dev.net/?p=974</guid>
		<description><![CDATA[作为系统管理员，经常会碰到这样一个场景：刚接手应用系统不久，业务扩展迅速，老板要求你再搭建N个应用环境，并希望尽量与运行中的平台一致。
犯难的是，前同事留下的文档不详细，没有关于几个主要Service的编译参数。这时你就必须设法取得信息。
1.通过软件包自己的version参数或者debug工具
例如，MySQL软件包中的mysqlbug，执行该工具，将返回debug信息，过滤出其中的Configure command代码块即可
<span class="readmore"><a href="http://99dev.net/archives/974" title="Linux获取程序编译参数" target="_blank">阅读全文——共2730字</a></span>]]></description>
			<content:encoded><![CDATA[<p>作为系统管理员，经常会碰到这样一个场景：刚接手应用系统不久，业务扩展迅速，老板要求你再搭建N个应用环境，并希望尽量与运行中的平台一致。<br />
犯难的是，前同事留下的文档不详细，没有关于几个主要Service的编译参数。这时你就必须设法取得信息。</p>
<p><strong>1.通过软件包自己的version参数或者debug工具</strong><br />
例如，MySQL软件包中的mysqlbug，执行该工具，将返回debug信息，过滤出其中的Configure command代码块即可<br />
<span id="more-974"></span></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Configure command: .<span style="color: #000000; font-weight: bold;">/</span>configure &nbsp;<span style="color: #ff0000;">'--disable-shared'</span> <span style="color: #ff0000;">'--with-server-suffix=-community'</span> <span style="color: #ff0000;">'--without-plugin-ndbcluster'</span> <span style="color: #ff0000;">'--with-plugin-innobase'</span> <span style="color: #ff0000;">'<br />
--with-plugin-partition'</span> <span style="color: #ff0000;">'--with-plugin-csv'</span> <span style="color: #ff0000;">'--with-plugin-archive'</span> <span style="color: #ff0000;">'--with-plugin-blackhole'</span> <span style="color: #ff0000;">'--with-plugin-federated'</span> <span style="color: #ff0000;">'--without-plugin-da<br />
emon_example'</span> <span style="color: #ff0000;">'--without-plugin-ftexample'</span> <span style="color: #ff0000;">'--without-plugin-example'</span> <span style="color: #ff0000;">'--with-embedded-server'</span> <span style="color: #ff0000;">'--without-bench'</span> <span style="color: #ff0000;">'--with-big-tables'</span> <span style="color: #ff0000;">'--enabl<br />
e-assembler'</span> <span style="color: #ff0000;">'--enable-local-infile'</span> <span style="color: #ff0000;">'--with-mysqld-user=mysql'</span> <span style="color: #ff0000;">'--with-unix-socket-path=/var/lib/mysql/mysql.sock'</span> <span style="color: #ff0000;">'--with-pic'</span> <span style="color: #ff0000;">'--prefix=/'</span><br />
<span style="color: #ff0000;">'--with-extra-charsets=complex'</span> <span style="color: #ff0000;">'--with-ssl'</span> <span style="color: #ff0000;">'--exec-prefix=/usr'</span> <span style="color: #ff0000;">'--libexecdir=/usr/sbin'</span> <span style="color: #ff0000;">'--libdir=/usr/lib'</span> <span style="color: #ff0000;">'--sysconfdir=/etc'</span> <span style="color: #ff0000;">'--datadi<br />
r=/usr/share'</span> <span style="color: #ff0000;">'--localstatedir=/var/lib/mysql'</span> <span style="color: #ff0000;">'--infodir=/usr/share/info'</span> <span style="color: #ff0000;">'--includedir=/usr/include'</span> <span style="color: #ff0000;">'--mandir=/usr/share/man'</span> <span style="color: #ff0000;">'--enable-th<br />
read-safe-client'</span> <span style="color: #ff0000;">'--with-comment=MySQL Community Server (GPL)'</span> <span style="color: #ff0000;">'--with-readline'</span> <span style="color: #ff0000;">'--with-zlib-dir=bundled'</span> <span style="color: #ff0000;">'CC=gcc'</span> <span style="color: #ff0000;">'CFLAGS=-O2 -g -pipe -Wa<br />
ll -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tab<br />
les'</span> <span style="color: #ff0000;">'LDFLAGS='</span> <span style="color: #ff0000;">'CXX=gcc'</span> <span style="color: #ff0000;">'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32<br />
-march=i386 -mtune=generic -fasynchronous-unwind-tables -felide-constructors -fno-exceptions -fno-rtti '</span></div></td></tr></tbody></table></div>
<p>附上其他常用service编译参数的查看方法</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">查看nginx编译参数：nginx <span style="color: #660033;">-V</span><br />
查看apache编译参数：<span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>apache<span style="color: #000000; font-weight: bold;">/</span>build<span style="color: #000000; font-weight: bold;">/</span>config.nice<br />
查看mysql编译参数：mysqlbug<br />
查看php编译参数：php <span style="color: #660033;">-i</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> configure</div></td></tr></tbody></table></div>
<p>All Tested OK！</p>
<p><strong>2.利用SRPM包的spec文件获取build信息</strong><br />
以上查看Apache编译的方法，只能service是采用tar.gz安装的环境。如果是rpm安装，利用该方法是行不通的，rpm安装的service，并不会留下config.nice。<br />
解决办法就是搜索该软件是否有发布SRPM(.src.rpm后缀)，将其解压，查看spec文件中的%build代码块。</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br /></div></td><td><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">%</span>build<br />
......<br />
..<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">-C</span> \<br />
<span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_sysconfdir<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">/</span>httpd \<br />
<span style="color: #660033;">--with-apr</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apr-config \<br />
<span style="color: #660033;">--with-apr-util</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apu-config \<br />
<span style="color: #660033;">--exec-prefix</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_prefix<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--bindir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_bindir<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--sbindir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_sbindir<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--mandir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_mandir<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--libdir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_libdir<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--sysconfdir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_sysconfdir<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">/</span>httpd<span style="color: #000000; font-weight: bold;">/</span>conf \<br />
<span style="color: #660033;">--includedir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_includedir<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">/</span>httpd \<br />
<span style="color: #660033;">--libexecdir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_libdir<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">/</span>httpd<span style="color: #000000; font-weight: bold;">/</span>modules \<br />
<span style="color: #660033;">--datadir</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>contentdir<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--with-mpm</span>=<span style="color: #007800;">$mpm</span> \<br />
<span style="color: #660033;">--enable-suexec</span> <span style="color: #660033;">--with-suexec</span> \<br />
<span style="color: #660033;">--with-suexec-caller</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>suexec_caller<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--with-suexec-docroot</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>contentdir<span style="color: #7a0874; font-weight: bold;">&#125;</span> \<br />
<span style="color: #660033;">--with-suexec-logfile</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_localstatedir<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>httpd<span style="color: #000000; font-weight: bold;">/</span>suexec.log \<br />
<span style="color: #660033;">--with-suexec-bin</span>=<span style="color: #000000; font-weight: bold;">%</span><span style="color: #7a0874; font-weight: bold;">&#123;</span>_sbindir<span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">/</span>suexec \<br />
<span style="color: #660033;">--with-suexec-uidmin</span>=<span style="color: #000000;">500</span> <span style="color: #660033;">--with-suexec-gidmin</span>=<span style="color: #000000;">500</span> \<br />
<span style="color: #660033;">--with-devrandom</span> \<br />
<span style="color: #660033;">--with-ldap</span> <span style="color: #660033;">--enable-ldap</span> <span style="color: #660033;">--enable-auth-ldap</span> \<br />
<span style="color: #660033;">--enable-cache</span> <span style="color: #660033;">--enable-disk-cache</span> <span style="color: #660033;">--enable-mem-cache</span> <span style="color: #660033;">--enable-file-cache</span> \<br />
<span style="color: #660033;">--enable-ssl</span> <span style="color: #660033;">--with-ssl</span> \<br />
<span style="color: #660033;">--enable-deflate</span> <span style="color: #660033;">--enable-cgid</span> \<br />
<span style="color: #660033;">--enable-proxy</span> <span style="color: #660033;">--enable-proxy-connect</span> \<br />
<span style="color: #660033;">--enable-proxy-http</span> <span style="color: #660033;">--enable-proxy-ftp</span> \</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/974/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Original]Linux+Zeus+php.fcgi配置过程</title>
		<link>http://99dev.net/archives/714</link>
		<comments>http://99dev.net/archives/714#comments</comments>
		<pubDate>Thu, 26 Nov 2009 08:48:45 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[Web服务器]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zeus]]></category>

		<guid isPermaLink="false">http://99dev.net/archives/714</guid>
		<description><![CDATA[1.系统环境配置
配置中文支持
rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm
rpm -ivh fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm
<span class="readmore"><a href="http://99dev.net/archives/714" title="[Original]Linux+Zeus+php.fcgi配置过程" target="_blank">阅读全文——共2321字</a></span>]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: medium"><strong>1.系统环境配置</strong></span></p>
<p><span style="font-size: x-small"><strong>配置中文支持</strong></span><br />
rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm<br />
rpm -ivh fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm</p>
<p><span style="font-size: x-small"><strong>修改Hostname</strong></span><br />
1文件中的HOSTNAME，改为你希望的名字<br />
2，/etc/hosts文件中，把所有原来机器名修改为新的机器名</p>
<p><span style="font-size: x-small"><strong>清除原服务组件</strong></span></p>
<p><span id="more-714"></span>1.kill所有nginx/php/mysql进程</p>
<p>2.删除服务组件所在目录</p>
<p>3.删除启动项，一般位于setup菜单中和/etc/rc.local文件中</p>
<p><span style="font-size: medium"><strong>2.服务组件安装</strong></span></p>
<p>安装MySQL和PHP组件，这部分大同小异，参考张宴的文章<a href="http://http://blog.s135.com/nginx_php_v5/" target="_blank">《Nginx 0.7.x + PHP 5.2.10（FastCGI）搭建胜过Apache十倍的Web服务器（第5版）》</a></p>
<blockquote><p>Tips：Screen</p>
<p>配置时。所在网络环境相当不稳定，经常发生掉线的情况。为避免掉线重新登陆，引起的正在编辑的文件被锁死的问题，建议用screen开启一个不掉线的会话。screnn的用法参考：<a title="http://www.ibm.com/developerworks/cn/linux/l-cn-screen/" href="http://www.ibm.com/developerworks/cn/linux/l-cn-screen/">http://www.ibm.com/developerworks/cn/linux/l-cn-screen/</a></p></blockquote>
<p><strong><span style="font-size: medium">3.服务组件配置调试</span></strong></p>
<p><span style="font-size: x-small"><strong>·PHP编译配置</strong></span></p>
<blockquote><p>PHP编译参数<br />
&#8216;./configure&#8217; &#8216;&#8211;prefix=/usr/local/webserver/php&#8217; &#8216;&#8211;with-config-file-path=/usr/local/webserver/php/etc&#8217; &#8216;&#8211;with-mysql=/usr&#8217; &#8216;&#8211;with-mysqli=/usr/bin/mysql_config&#8217; &#8216;&#8211;with-iconv-dir=/usr/local&#8217; &#8216;&#8211;with-freetype-dir&#8217; &#8216;&#8211;with-jpeg-dir&#8217; &#8216;&#8211;with-png-dir&#8217; &#8216;&#8211;with-zlib&#8217; &#8216;&#8211;with-libxml-dir=/usr&#8217; &#8216;&#8211;enable-xml&#8217; &#8216;&#8211;disable-rpath&#8217; &#8216;&#8211;enable-discard-path&#8217; &#8216;&#8211;enable-safe-mode&#8217; &#8216;&#8211;enable-bcmath&#8217; &#8216;&#8211;enable-shmop&#8217; &#8216;&#8211;enable-sysvsem&#8217; &#8216;&#8211;enable-inline-optimization&#8217; &#8216;&#8211;with-curl&#8217; &#8216;&#8211;with-curlwrappers&#8217; &#8216;&#8211;enable-mbregex&#8217; &#8216;&#8211;enable-fastcgi&#8217; &#8216;&#8211;enable-fpm&#8217; &#8216;&#8211;enable-force-cgi-redirect&#8217; &#8216;&#8211;enable-mbstring&#8217; &#8216;&#8211;with-mcrypt&#8217; &#8216;&#8211;with-gd&#8217; &#8216;&#8211;enable-gd-native-ttf&#8217; &#8216;&#8211;with-openssl&#8217; &#8216;&#8211;with-mhash&#8217; &#8216;&#8211;enable-pcntl&#8217; &#8216;&#8211;enable-sockets&#8217; &#8216;&#8211;with-ldap&#8217; &#8216;&#8211;with-ldap-sasl&#8217; &#8216;&#8211;with-xmlrpc&#8217; &#8216;&#8211;enable-zip&#8217; &#8216;&#8211;enable-soap&#8217; &#8216;&#8211;without-pear&#8217;</p></blockquote>
<p><span style="font-size: x-small">[PHP]编译过程中发生错误-1</span></p>
<blockquote><p>configure: error: Cannot find MySQL header files under /usr</p></blockquote>
<p><span style="font-size: x-small">[PHP]缺少mysql的头文件，需安装以下依赖包</span></p>
<blockquote><p>rpm -ivh MySQL-devel-4.1.12-1.i386.rpm</p></blockquote>
<p>[PHP]编译过程中发生错误-2</p>
<blockquote><p>error: mysql configure failed. Please check config.log for more information.</p></blockquote>
<p>[PHP]64位系统，需指定以下环境变量</p>
<blockquote><p>export LDFLAGS=-L/usr/lib64/mysql</p></blockquote>
<p><strong><span style="font-size: x-small">·Zeus编译配置</span></strong></p>
<p><span style="font-size: x-small">[Zeus]Zeus使用中遇到问题，web端口已打开，访问测试页面却显示空白。</span></p>
<blockquote><p>解决办法：Current Configuration -〉 Bind address    125.65.45.18</p></blockquote>
<p><span style="font-size: x-small"><strong>不使用Zeus自带的PHP，改用我们自己编译的新版本。</strong></span></p>
<blockquote><p>在Current Configuration -〉PHP置为Disable</p></blockquote>
<blockquote><p>在API Support-&gt;FastCGI<br />
Configuring FastCGI Remote Responders<br />
Adding a FastCGI Remote Responder</p>
<p>Directory name: /usr/local/bin/php<br />
Location: Machine name: localhost<br />
Port: 8002<br />
Additional methods supported?: none</p></blockquote>
<blockquote><p>在URL Handling-&gt;Handlers-&gt;Adding a Handler<br />
File Extension: *.php<br />
Specify the path and filename of the handler, relative to the document root: /usr/local/bin/php<br />
HTTP 404 errors are handled by: The handler</p></blockquote>
<p><strong>在Zeus/rc.d目录下，新建一个S05php可执行脚本，<a href="http://99dev.net/wp-content/uploads/2009/11/s05php">s05php</a></strong></p>
<p><strong>运行rc.d/S05php start，初始化php.fcgi进程</strong></p>
<p><strong>在www目录下，放置phpinfo.php页面测试</strong></p>
<blockquote><p>&lt;?phpinfo();?&gt;</p></blockquote>
<p><span style="font-size: x-small;"><em></em></span></p>
<p><span style="font-size: x-small;"><em>&lt;!&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;Notice&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-&gt;<br />
</em></span><span style="font-size: x-small;">1.Zeus基于Web界面配置，切记在输入任何参数时，使用英文输入法。<br />
2.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/714/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[Original]Linux MySQL备份策略</title>
		<link>http://99dev.net/archives/699</link>
		<comments>http://99dev.net/archives/699#comments</comments>
		<pubDate>Fri, 30 Oct 2009 06:07:16 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[其他Linux技术]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://99dev.net/archives/699</guid>
		<description><![CDATA[MySQL在Linux应用环境中，一般都是最重要的业务，定期备份是必须的。一般有如下几种策略：
1.拷贝文件系统 &#8211; 停止服务，copy 数据库目录；启动服务      (需要停止服务一段时间，期间不接受写入操作)
2.MySQL自带工具mysqldump，这也是最常用的方式      (能在备份的过程lock tables，一定程度上保证数据的一致性)
3.MySQL自带工具mysqlhotcopy      (文件系统级拷贝工具，能在备份过程lock tables，只对MyISAM表格有效)
<span class="readmore"><a href="http://99dev.net/archives/699" title="[Original]Linux MySQL备份策略" target="_blank">阅读全文——共2456字</a></span>]]></description>
			<content:encoded><![CDATA[<p>MySQL在Linux应用环境中，一般都是最重要的业务，定期备份是必须的。一般有如下几种策略：</p>
<blockquote><p>1.拷贝文件系统 &#8211; 停止服务，copy 数据库目录；启动服务      <br />(需要停止服务一段时间，期间不接受写入操作)</p>
<p>2.MySQL自带工具mysqldump，这也是最常用的方式      <br />(能在备份的过程lock tables，一定程度上保证数据的一致性)</p>
<p>3.MySQL自带工具mysqlhotcopy      <br />(文件系统级拷贝工具，能在备份过程lock tables，只对MyISAM表格有效)</p>
<p>4.热备(未跑在生产环境中，等做完发上来)</p>
</blockquote>
<p> <span id="more-699"></span>
<p>· mysql库不支持lock，详细请参考<a title="http://planet.mysql.com/entry/?id=17913" href="http://planet.mysql.com/entry/?id=17913">http://planet.mysql.com/entry/?id=17913</a>     <br />只能使用mysqldump+”&#8211;lock-tables=0”来实现</p>
<p><strong>· UUD*</strong>库使用mysqldump备份有问题，只能采用mysqlhotcopy</p>
<p>· 其他的采用mysqldump和mysqlhotcopy，就看个人习惯</p>
<p>&#160;</p>
<p><strong><font size="2">附上利用python语言写的备份脚本 &#8211; backup_mysql.py        <br />支持备份到本地和远程FTP</font></strong></p>
<blockquote><p>#!/usr/bin/python      <br /># coding=gb2312 </p>
<p>import os      <br />import time       <br />import ftplib       <br />import traceback </p>
<p>#config vars      <br />systempathchr=&quot;/&quot; #路径分割符，*nix用&quot;/&quot; win32用&quot;\\&quot;       <br />dbuser=&quot;mysqlhotcopy&quot; #数据库用户名       <br />dbpwd=&quot;8jsu0uo2dx9d&quot; #数据库密码       <br />dbnamelist=[&quot;fb555&quot;,&quot;114la&quot;] #需要备份那些数据库 </p>
<p>workdir=&quot;/data1/backup_zone/data_mysql&quot; #本地备份文件夹      <br />errlogfile=&quot;databack.log&quot; #错误日志名       <br />ftp_addr=&quot;192.168.0.2&quot; #ftp地址       <br />ftp_port=&quot;2102&quot; #ftp端口       <br />ftp_user=&quot;databack&quot; #ftp用户名       <br />ftp_pwd=&quot;backpwd&quot; #ftp密码       <br />ftp_path=&quot;/&quot; #存放到ftp路径 </p>
<p>ftpqueue=[] </p>
<p>def ftpstor():      <br />&#160;&#160;&#160; #login       <br />&#160;&#160;&#160; bufsize=1024       <br />&#160;&#160;&#160; ftp=ftplib.FTP()       <br />&#160;&#160;&#160; try:       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ftp.connect(ftp_addr,ftp_port)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ftp.login(ftp_user,ftp_pwd)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ftp.cwd(ftp_path)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; for filepath in ftpqueue:       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; #open file for input as binary       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; f=open(filepath,&quot;rb&quot;)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; #store file as binary       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; print getfilename(filepath)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ftp.storbinary(&quot;STOR &quot;+getfilename(filepath),f,bufsize)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; f.close()       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; ftp.quit()       <br />&#160;&#160;&#160; except:       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; path=os.path.join(workdir,errlogfile)       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; traceback.print_exc(file=open(path,&quot;a&quot;)) </p>
<p>def dumpdb(dbname):      <br />&#160;&#160;&#160; global ftpqueue       <br />&#160;&#160;&#160; timeformat=&quot;%Y%m%d&quot;       <br />&#160;&#160;&#160; sqlvalformat=&quot;mysqldump &#8211;socket=/tmp/mysql.sock -u%s -p\&quot;%s\&quot; \&quot;%s\&quot; &gt;\&quot;%s\&quot;&quot;       <br />&#160;&#160;&#160; tarvalformat=&quot;tar &#8211;directory=\&quot;%s\&quot; -zcf \&quot;%s\&quot; \&quot;%s\&quot;&quot;       <br />&#160;&#160;&#160; nowdate=time.strftime(timeformat)       <br />&#160;&#160;&#160; dumpfile=os.path.join(workdir,dbname+&quot;.dump&quot;)       <br />&#160;&#160;&#160; zipfile=os.path.join(workdir,dbname+&quot;_&quot;+nowdate+&quot;.tar.gz&quot;)       <br />&#160;&#160;&#160; sqlval=sqlvalformat % (dbuser,dbpwd,dbname,dumpfile)       <br />&#160;&#160;&#160; result=os.system(sqlval)       <br />&#160;&#160;&#160; tarval=tarvalformat % (workdir,zipfile,dbname+&quot;.dump&quot;) </p>
<p>&#160;&#160;&#160; result=os.system(tarval)      <br />&#160;&#160;&#160; os.remove(dumpfile)       <br />&#160;&#160;&#160; ftpqueue.append(zipfile) </p>
<p>def getfilename(path):      <br />&#160;&#160;&#160; pt=path.rfind(systempathchr)       <br />&#160;&#160;&#160; return path[pt+1:]       <br />def main():       <br />&#160;&#160;&#160; for dbname in dbnamelist:       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; dumpdb(dbname)       <br />#&#160;&#160;&#160; ftpstor() </p>
<p>main() </p>
<p>#from <a href="https://d4e.org/showthread.php?t=76803&amp;highlight=mysql+%E5%A4%87%E4%BB%BD">https://d4e.org/showthread.php?t=76803&amp;highlight=mysql+%E5%A4%87%E4%BB%BD</a></p>
</blockquote>
<p><strong></strong></p>
<p><strong>Tips      <br /></strong><strong>·创建用于操作备份过程的mysql账户mysqlhotcopy</strong></p>
<blockquote><p><font size="1">GRANT SELECT ,        <br />RELOAD ,         <br />SHOW DATABASES ,         <br />LOCK TABLES ON * . * TO &#8216;mysqlhotcopy&#8217;@'localhost&#8217; WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;</font></p>
</blockquote>
<p>*UUD=UCenter+UChome+Discuz三者搭配的应用</p>
<p>·执行脚本需要用户有登录shell，空密码即可(保障安全，禁止ssh登陆)   </p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/699/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[original]Ubuntu Server中自定义Mysql dbdir路径</title>
		<link>http://99dev.net/archives/654</link>
		<comments>http://99dev.net/archives/654#comments</comments>
		<pubDate>Tue, 08 Sep 2009 11:59:17 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://99dev.net/archives/654</guid>
		<description><![CDATA[依赖RHEL的使用习惯，以为直接在/etc/my.cnf修改”dbdir=/var/lib/mysql”即可。事实证明，此经验是行不通的。在Ubuntu Server中，只要按此修改，再启动mysqld’’/etc/init.d/mysql start’’，执行结果一定是failed。
Ubuntu Server采取了Suse的杀手级应用AppArmor，对一些关键业务的读写权限有严格限制。需要改动这些业务，需要在AppArmor模块中加入Allow规则。

具体操作流程如下：
<span class="readmore"><a href="http://99dev.net/archives/654" title="[original]Ubuntu Server中自定义Mysql dbdir路径" target="_blank">阅读全文——共612字</a></span>]]></description>
			<content:encoded><![CDATA[<p>依赖RHEL的使用习惯，以为直接在/etc/my.cnf修改”dbdir=/var/lib/mysql”即可。事实证明，此经验是行不通的。在Ubuntu Server中，只要按此修改，再启动mysqld’’/etc/init.d/mysql start’’，执行结果一定是failed。</p>
<p>Ubuntu Server采取了Suse的杀手级应用<a href="http://www.linux-cn.com/html/linux/publish/suse/20070411/1153.html">AppArmor</a>，对一些关键业务的读写权限有严格限制。需要改动这些业务，需要在AppArmor模块中加入Allow规则。</p>
<p><span id="more-654"></span></p>
<p>具体操作流程如下：</p>
<p>1.修改MySQL dbdir参数</p>
<blockquote><p>#vim /etc/my.cnf<br />
dbdir = /data0/data_mysql</p></blockquote>
<p>2.在AppArmor中加入Allow规则</p>
<blockquote><p>vim /etc/apparmor.d/usr.sbin.mysqld<br />
/var/lib/mysql/ r,<br />
/var/lib/mysql/** rwk,</p></blockquote>
<p>修改为</p>
<blockquote><p>/data0/data_mysql/ r,<br />
/data0/data_mysql/** rwk,</p></blockquote>
<p>3.重新建立mysql数据库</p>
<blockquote><p>sudo mysql_install_db</p></blockquote>
<p>4.启动mysql服务</p>
<blockquote><p>sudo /etc/init.d/mysql start</p></blockquote>
<p>5.设置数据库密码</p>
<blockquote><p>mysqladmin –u root password ‘newpassword’</p></blockquote>
<p>6.在/etc/mysql/debian.cnf中找到你的debian-sys-maint用户密码，在mysql中重新建立这个用户。</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/654/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Collection]如何导入导出MySQL数据库</title>
		<link>http://99dev.net/archives/398</link>
		<comments>http://99dev.net/archives/398#comments</comments>
		<pubDate>Mon, 05 Jan 2009 13:04:39 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://99dev.net/archives/398</guid>
		<description><![CDATA[1. 概述
MySQL数据库的导入，有两种方法：
1) 先导出数据库SQL脚本，再导入；
2) 直接拷贝数据库目录和文件。
<span class="readmore"><a href="http://99dev.net/archives/398" title="[Collection]如何导入导出MySQL数据库" target="_blank">阅读全文——共1239字</a></span>]]></description>
			<content:encoded><![CDATA[<p>1. 概述<br />
MySQL数据库的导入，有两种方法：<br />
1) 先导出数据库SQL脚本，再导入；<br />
2) 直接拷贝数据库目录和文件。</p>
<p>在不同操作系统或MySQL版本情况下，直接拷贝文件的方法可能会有不兼容的情况发生。<br />
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。</p>
<p><span id="more-398"></span></p>
<h1>2. 方法一 SQL脚本形式</h1>
<p>操作步骤如下：<br />
2.1. 导出SQL脚本<br />
在原数据库服务器上，可以用phpMyAdmin工具，或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行，导出SQL脚本。<br />
2.1.1 用phpMyAdmin工具<br />
导出选项中，选择导出“结构”和“数据”，不要添加“Drop DATABASE”和“Drop TABLE”选项。<br />
选中“另存为文件”选项，如果数据比较多，可以选中“gzipped”选项。<br />
将导出的SQL文件保存下来。</p>
<p>2.1.2 用mysqldump命令行<br />
命令格式<br />
mysqldump -u用户名 -p 数据库名 &gt; 数据库名.sql<br />
范例：<br />
mysqldump -uroot -p abc &gt; abc.sql<br />
（导出数据库abc到abc.sql文件）</p>
<p>提示输入密码时，输入该数据库用户名的密码。</p>
<p>2.2. 创建空的数据库<br />
通过主控界面/控制面板，创建一个数据库。假设数据库名为abc，数据库全权用户为abc_f。</p>
<p>2.3. 将SQL脚本导入执行<br />
同样是两种方法，一种用phpMyAdmin（mysql数据库管理）工具，或者mysql命令行。<br />
2.3.1 用phpMyAdmin工具<br />
从控制面板，选择创建的空数据库，点“管理”，进入管理工具页面。<br />
在”SQL”菜单中，浏览选择刚才导出的SQL文件，点击“执行”以上载并执行。</p>
<p>注意：phpMyAdmin对上载的文件大小有限制，php本身对上载文件大小也有限制，如果原始sql文件<br />
比较大，可以先用gzip对它进行压缩，对于sql文件这样的文本文件，可获得1:5或更高的压缩率。<br />
gzip使用方法：<br />
# gzip xxxxx.sql<br />
得到<br />
xxxxx.sql.gz文件。</p>
<p>2.3.2 用mysql命令行<br />
命令格式<br />
mysql -u用户名 -p 数据库名 &lt; 数据库名.sql<br />
范例：<br />
mysql -uabc_f -p abc &lt; abc.sql<br />
（导入数据库abc从abc.sql文件）</p>
<p>提示输入密码时，输入该数据库用户名的密码。</p>
<h1>3 方法二 直接拷贝</h1>
<p>如果数据库比较大，可以考虑用直接拷贝的方法，但不同版本和操作系统之间可能不兼容，要慎用。<br />
3.1 准备原始文件<br />
用tar打包为一个文件</p>
<p>3.2 创建空数据库</p>
<p>3.3 解压<br />
在临时目录中解压，如：<br />
cd /tmp<br />
tar zxf mydb.tar.gz</p>
<p>3.4 拷贝<br />
将解压后的数据库文件拷贝到相关目录<br />
cd mydb/<br />
cp * /var/lib/mysql/mydb/</p>
<p>对于FreeBSD:<br />
cp * /var/db/mysql/mydb/</p>
<p>3.5 权限设置<br />
将拷贝过去的文件的属主改为mysql:mysql，权限改为660<br />
chown mysql:mysql /var/lib/mysql/mydb/*<br />
chmod 660 /var/lib/mysql/mydb/*</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/398/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Original]已解决：ArchLinux上编译AMP环境错误</title>
		<link>http://99dev.net/archives/281</link>
		<comments>http://99dev.net/archives/281#comments</comments>
		<pubDate>Thu, 13 Nov 2008 10:34:01 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[Web服务器]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://99dev.net/?p=281</guid>
		<description><![CDATA[按照M(MySQL)-A(Apache)-P(PHP)的顺序，从源代码编译安装。在未安装PHP之前，Apache可以正常开启。安装完PHP，apache restart出现如下错误：
[root@myhost php]# /usr/local/httpd/bin/apachectl stop
Syntax error on line 262 of /usr/local/httpd/conf/httpd.conf:
Cannot load /usr/local/httpd/modules/libphp5.so into server: /usr/local/httpd/modules/libphp5.so: undefined symbol: sqlite3ExprDeleteGoogle上很多人说是由于libphp5的权限问题和SeLinux安全问题，分析一下，可以否定这2种说法：
<span class="readmore"><a href="http://99dev.net/archives/281" title="[Original]已解决：ArchLinux上编译AMP环境错误" target="_blank">阅读全文——共577字</a></span>]]></description>
			<content:encoded><![CDATA[<p>按照M(MySQL)-A(Apache)-P(PHP)的顺序，从源代码编译安装。在未安装PHP之前，Apache可以正常开启。安装完PHP，apache restart出现如下错误：</p>
<p>[root@myhost php]# /usr/local/httpd/bin/apachectl stop<br />
Syntax error on line 262 of /usr/local/httpd/conf/httpd.conf:<br />
Cannot load /usr/local/httpd/modules/libphp5.so into server: /usr/local/httpd/modules/libphp5.so: undefined symbol: sqlite3ExprDelete<span id="more-281"></span>Google上很多人说是由于libphp5的权限问题和SeLinux安全问题，分析一下，可以否定这2种说法：</p>
<p>1.libphp5.so已经是755权限</p>
<p>2.ArchLinux是轻量级Linux，没有集成SeLinux安装功能</p>
<p>依照以往在其他Linux中的经验，问题应该出在最后的PHP之上，重新编译应该OK</p>
<p>依次执行make clean ; ./configure ; make ; make install</p>
<p>重新启动Apache，/path_apache/bin/apachectl start ,OK</p>
<p>放上phpinfo，测试PHP调用正常</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/281/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Original]MySQL4平滑升级到MYSQL5(无中文乱码)</title>
		<link>http://99dev.net/archives/273</link>
		<comments>http://99dev.net/archives/273#comments</comments>
		<pubDate>Tue, 28 Oct 2008 08:51:09 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://99dev.net/?p=273</guid>
		<description><![CDATA[查询目前活动的MySQL数据库，清除废弃的数据库（直接在var/lib/mysql中直接删除对应的目录即可）
关闭MySQL Service，备份/var/lib/mysql目录下的活动数据库（用tar打包并存到其他位置）
卸载MySQL 4.1，并清除mysql数据库（清空/var/lib/mysql/mysql）
安装MySQL 5，并启动
<span class="readmore"><a href="http://99dev.net/archives/273" title="[Original]MySQL4平滑升级到MYSQL5(无中文乱码)" target="_blank">阅读全文——共206字</a></span>]]></description>
			<content:encoded><![CDATA[<p>查询目前活动的MySQL数据库，清除废弃的数据库（直接在var/lib/mysql中直接删除对应的目录即可）</p>
<p>关闭MySQL Service，备份/var/lib/mysql目录下的活动数据库（用tar打包并存到其他位置）</p>
<p>卸载MySQL 4.1，并清除mysql数据库（清空/var/lib/mysql/mysql）</p>
<p>安装MySQL 5，并启动</p>
<p>利用phpMyAdmin重建所有数据库授权用户</p>
<p>将原有数据迁移回去，即可正常运行</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/273/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Original]重启MySQL的正确方法</title>
		<link>http://99dev.net/archives/264</link>
		<comments>http://99dev.net/archives/264#comments</comments>
		<pubDate>Thu, 16 Oct 2008 02:45:35 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://99dev.net/archives/264</guid>
		<description><![CDATA[修改了my.cnf，需要重启MySQL服务
由于是从源码包安装的Mysql，所以系统中是没有红帽常用的servcie mysqld restart这个脚本

只好手工重启
<span class="readmore"><a href="http://99dev.net/archives/264" title="[Original]重启MySQL的正确方法" target="_blank">阅读全文——共260字</a></span>]]></description>
			<content:encoded><![CDATA[<p>修改了my.cnf，需要重启MySQL服务</p>
<p>由于是从源码包安装的Mysql，所以系统中是没有红帽常用的servcie mysqld restart这个脚本</p>
<p><span id="more-264"></span></p>
<p>只好手工重启</p>
<p>有人建议Killall mysql。这种野蛮的方法其实是不行的，强制终止的话，如果造成表损坏，损失是巨大的。</p>
<p>这里推荐安全的重启方法</p>
<p><span style="color: #ff0000;">$mysql_dir/bin/mysqladmin -u root -p shutdown<br />
$mysql_dir/bin/safe_mysqld &amp;</span></p>
<p>mysqladmin和mysqld_safe位于Mysql安装目录的bin目录下，很容易找到的。</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/264/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Original]mysql如何才能远程控制</title>
		<link>http://99dev.net/archives/246</link>
		<comments>http://99dev.net/archives/246#comments</comments>
		<pubDate>Mon, 06 Oct 2008 08:34:49 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://99dev.net/?p=246</guid>
		<description><![CDATA[允许客户从远程连接，要保证两个条件：    1. mysql的身份认证信息中要允许客户从远程连接；     2. 防火墙打开mysql的端口(3306)
远程工具管理工具，推荐SQLyog企业版，一直用它，感觉还不错。
一般我们只允许用户从本机连接，不建议允许远程连接，这可能会带来额外的安全问题，以及增加网络流量。
 如果客户一定要求，首先要知道对方从哪个IP过来，然后通过supervisor管理界面的MySQL数据库工具，点击左边的mysql数据库，点击User表，   在出现的SQL语句输入框内输入：   grant select, insert, update, delete on testdb001.* to testdb001_f@192.168.0.60 identified by &#8216;changeme&#8217;;   （其中，数据库名是testdb001，用户名：testdb001_f，192.168.0.60是远程ip，changeme是密码。）   执行之后，再执行flush privileges，即生效。
<span class="readmore"><a href="http://99dev.net/archives/246" title="[Original]mysql如何才能远程控制" target="_blank">阅读全文——共715字</a></span>]]></description>
			<content:encoded><![CDATA[<p>允许客户从远程连接，要保证两个条件：    <br />1. mysql的身份认证信息中要允许客户从远程连接；     <br />2. 防火墙打开mysql的端口(3306)</p>
<p>远程工具管理工具，推荐SQLyog企业版，一直用它，感觉还不错。</p>
<p>一般我们只允许用户从本机连接，不建议允许远程连接，这可能会带来额外的安全问题，以及增加网络流量。</p>
<p> <span id="more-246"></span>如果客户一定要求，首先要知道对方从哪个IP过来，然后通过supervisor管理界面的MySQL数据库工具，点击左边的mysql数据库，点击User表，   <br />在出现的SQL语句输入框内输入：   <br />grant select, insert, update, delete on testdb001.* to testdb001_f@192.168.0.60 identified by &#8216;changeme&#8217;;   <br />（其中，数据库名是testdb001，用户名：testdb001_f，192.168.0.60是远程ip，changeme是密码。）   <br />执行之后，再执行flush privileges，即生效。
</p>
<p>下面列举一个实例</p>
<blockquote><p>mysql&gt; grant all privileges on *.* to root@&#8217;%&#8217; identified by &#8216;iampassword&#8217;;      <br />Query OK, 0 rows affected (0.00 sec)</p>
<p>mysql&gt; flush privileges;      <br />Query OK, 0 rows affected (0.00 sec)</p>
<p>mysql&gt; quit      <br />Bye</p>
</blockquote>
<blockquote><p>如果是Ubuntu Server，则需要添加以下额外的操作</p>
<ul>
<li>注释掉my.cnf中&quot;bind_port = 127.0.0.1&quot;一行</li>
<li>重启MySQL服务</li>
</ul>
</blockquote>
<p>&#160;</p>
<p>参考文章：<a href="http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html" target="_blank">How Do I Enable Remote Access To MySQL Database Server?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/246/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Collection]MySQL的root密码恢复方法</title>
		<link>http://99dev.net/archives/215</link>
		<comments>http://99dev.net/archives/215#comments</comments>
		<pubDate>Wed, 01 Oct 2008 13:44:18 +0000</pubDate>
		<dc:creator>蒼</dc:creator>
				<category><![CDATA[MySQL数据库]]></category>
		<category><![CDATA[Mysql]]></category>

		<guid isPermaLink="false">http://99dev.net/?p=215</guid>
		<description><![CDATA[#/etc/rc.d/init.d/mysqld stop //停止MYSQL
#/bin/mysqld_safe &#8211;skip-grant-tables&#38; //使用“-skip-grant-tables”参数来启动MySQL。
# /usr/bin/mysql -u root
mysql&#62; use mysql
<span class="readmore"><a href="http://99dev.net/archives/215" title="[Collection]MySQL的root密码恢复方法" target="_blank">阅读全文——共275字</a></span>]]></description>
			<content:encoded><![CDATA[<p>#/etc/rc.d/init.d/mysqld stop //停止MYSQL</p>
<p>#/bin/mysqld_safe &#8211;skip-grant-tables&amp; //使用“-skip-grant-tables”参数来启动MySQL。</p>
<p><span id="more-215"></span># /usr/bin/mysql -u root</p>
<p>mysql&gt; use mysql</p>
<p>mysql&gt; UPDATE user SET password=password(&#8216;newpassword&#8217;) WHERE user=&#8217;root&#8217;;</p>
<p>mysql&gt; FLUSH PRIVILEGES;</p>
<p>mysql&gt;quit</p>
<p>#/etc/rc.d/init.d/mysqld restart</p>
]]></content:encoded>
			<wfw:commentRss>http://99dev.net/archives/215/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

