<?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>N.S.thoughts &#187; DBD-mysql</title>
	<atom:link href="http://nightsailer.com/tag/dbd-mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://nightsailer.com</link>
	<description>...silent is golden...</description>
	<lastBuildDate>Wed, 01 Sep 2010 17:01:39 +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>SnowLeopard编译Perl DBD-Mysql出现 Can&#8217;t find &#8216;boot_DBD__mysql&#8217; symbol</title>
		<link>http://nightsailer.com/2009/09/01/491.html</link>
		<comments>http://nightsailer.com/2009/09/01/491.html#comments</comments>
		<pubDate>Mon, 31 Aug 2009 16:55:47 +0000</pubDate>
		<dc:creator>nightsailer</dc:creator>
				<category><![CDATA[Technotes]]></category>
		<category><![CDATA[DBD-mysql]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://night9.cn/?p=491</guid>
		<description><![CDATA[由于重新升级了macports，Perl更新l到5.10.1，原先的CPAN库要重装。不使用系统的Perl是因为避免今后OSX更新导致的问题。在DBD-Mysql make test时出现:
#   Failed test &#8216;use DBD::mysql;&#8217;
#   at t/00base.t line 21.
#     Tried to use &#8216;DBD::mysql&#8217;.
#     Error:  Can&#8217;t find &#8216;boot_DBD__mysql&#8217; symbol in /Volumes/users/night/.cpan/build/DBD-mysql-4.012-jPYwzP/blib/arch/auto/DBD/mysql/mysql.bundle
很奇怪，似乎link的lib不对。perl -V仔细检查了一下，发现还是64bit的问题。Snow Leopard中默认都编译为64bit,因此
perllib编译为x86_64，而mysql我安装的时候选择了i386版本，这样导致bundle无法正确加载了。
解决： 重新下载并安装x86_64版本的mysql for osx。 这下测试全部通过。
提示:
像我上篇所言，Snow Leopard默认都是64bit的代码，因此如果下载预编译的第三方库，一定要下载x86_64版本，
否则无法link。
]]></description>
			<content:encoded><![CDATA[<p>由于重新升级了macports，Perl更新l到5.10.1，原先的CPAN库要重装。不使用系统的Perl是因为避免今后OSX更新导致的问题。在DBD-Mysql make test时出现:<br />
#   Failed test &#8216;use DBD::mysql;&#8217;<br />
#   at t/00base.t line 21.<br />
#     Tried to use &#8216;DBD::mysql&#8217;.<br />
#     Error:  Can&#8217;t find &#8216;boot_DBD__mysql&#8217; symbol in /Volumes/users/night/.cpan/build/DBD-mysql-4.012-jPYwzP/blib/arch/auto/DBD/mysql/mysql.bundle</p>
<p>很奇怪，似乎link的lib不对。perl -V仔细检查了一下，发现还是64bit的问题。Snow Leopard中默认都编译为64bit,因此<br />
perllib编译为x86_64，而mysql我安装的时候选择了i386版本，这样导致bundle无法正确加载了。</p>
<p>解决： 重新下载并安装x86_64版本的mysql for osx。 这下测试全部通过。</p>
<p>提示:<br />
像我上篇所言，Snow Leopard默认都是64bit的代码，因此如果下载预编译的第三方库，一定要下载x86_64版本，<br />
否则无法link。</p>
]]></content:encoded>
			<wfw:commentRss>http://nightsailer.com/2009/09/01/491.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2个小问题</title>
		<link>http://nightsailer.com/2008/05/01/246.html</link>
		<comments>http://nightsailer.com/2008/05/01/246.html#comments</comments>
		<pubDate>Thu, 01 May 2008 08:28:34 +0000</pubDate>
		<dc:creator>nightsailer</dc:creator>
				<category><![CDATA[Util]]></category>
		<category><![CDATA[DBD-mysql]]></category>

		<guid isPermaLink="false">http://night9.cn/2008/05/01/246.html</guid>
		<description><![CDATA[1. 重新编译PHP,不使用mysqlnd,使用传统的mysql库,无法链接数据库, 错误:
Lost connection to MySQL server at &#8216;reading authorization packet&#8217;
原因: Mysql server默认链接超时是5秒 , 超过了则会报上述错误. 修改/etc/my.cnf将connect_timeout设置为60(和php
mysqli的值一样)
UPDATE: 不要修改,修改后产生了太多的链接!
MysqlND没有这个问题,从侧面说明,其连接池做的还不错.
2.编译DBD::mysql测试无法通过, 报错误无法载入mysqlclient.15.dylib
原因:
默认编译是动态编译,而其引用的mysql动态库的地址是错误的,默认是(/usr/local/mysql/lib/mysql)
在我的osx上,应该是/usr/local/mysql/lib
解决方案1: cp *dylib /usr/local/mysql/lib/mysql/
解决方案2:使用static link:
perl Makefile.PL &#8211;libs=&#8221;-L/usr/local/mysql/lib/mysql -lmysqlclient&#8221; &#8211;testuser=root
make
make test
sudo make install
]]></description>
			<content:encoded><![CDATA[<p>1. 重新编译PHP,不使用mysqlnd,使用传统的mysql库,无法链接数据库, 错误:<br />
Lost connection to MySQL server at &#8216;reading authorization packet&#8217;</p>
<p><del datetime="2008-05-04T16:34:23+00:00">原因: Mysql server默认链接超时是5秒 , 超过了则会报上述错误. 修改/etc/my.cnf将connect_timeout设置为60(和php<br />
mysqli的值一样)</del><br />
UPDATE: 不要修改,修改后产生了太多的链接!</p>
<p>MysqlND没有这个问题,从侧面说明,其连接池做的还不错.</p>
<p>2.编译DBD::mysql测试无法通过, 报错误无法载入mysqlclient.15.dylib<br />
原因:<br />
默认编译是动态编译,而其引用的mysql动态库的地址是错误的,默认是(/usr/local/mysql/lib/mysql)<br />
在我的osx上,应该是/usr/local/mysql/lib<br />
解决方案1: cp *dylib /usr/local/mysql/lib/mysql/<br />
解决方案2:使用static link:</p>
<p>perl Makefile.PL &#8211;libs=&#8221;-L/usr/local/mysql/lib/mysql -lmysqlclient&#8221; &#8211;testuser=root<br />
make<br />
make test<br />
sudo make install</p>
]]></content:encoded>
			<wfw:commentRss>http://nightsailer.com/2008/05/01/246.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
