<?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>FACE OF ADVERSITY - My Posture &#187; Database</title>
	<atom:link href="http://www.lidecheng.com/blog/tag/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lidecheng.com/blog</link>
	<description>直面困境 - lidecheng&#039;s weblog</description>
	<lastBuildDate>Thu, 17 Jun 2010 05:38:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>phpmyadmin导入大数据的方法</title>
		<link>http://www.lidecheng.com/blog/phpmyadmin-import-excessive-sql-file/</link>
		<comments>http://www.lidecheng.com/blog/phpmyadmin-import-excessive-sql-file/#comments</comments>
		<pubDate>Sun, 03 May 2009 06:07:35 +0000</pubDate>
		<dc:creator>lidecheng</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[phpmyadmin]]></category>

		<guid isPermaLink="false">http://www.lidecheng.com/blog/?p=144</guid>
		<description><![CDATA[在使用PhpMyAdmin的时候经常用到数据的导入和导出(Export/Import)，但是在导入大数据的时候由于php上传文件的限制和脚本响应时间的限制，导致phpMyAdmin无法导入大数据，对于导入大数据到mysql的，我以前使用过使用SHELL的方式导入几百兆的文件到mySQL数据库（原文），但是国内的虚拟主机绝大多数不像DreamHost一样开放SHELL权限，而且多数都是Windows Server服务器。我们自己又没有权限修改php.ini文件，对于这种情况我们可以使用phpMyAdmin提供的$cfg['UploadDir']方法，导入服务器上存在的.sql文件。
首先，找到phpMyAdmin的目录，找到根目录下的config.inc.php文件，然后找到 $cfg['UploadDir'] ，通过注释(Directories for saving/loading files from server)就可以看出这是用来导入服务器上的SQL文件的方法。相对的就是 $cfg['SaveDir'] ，顾名思义就是把导出的SQL文件保存在服务器上的目录中。
<span class="readmore"><a href="http://www.lidecheng.com/blog/phpmyadmin-import-excessive-sql-file/" title="phpmyadmin导入大数据的方法">Read the full story &#187;</a></span>]]></description>
			<content:encoded><![CDATA[<p>在使用PhpMyAdmin的时候经常用到数据的导入和导出(Export/Import)，但是在导入大数据的时候由于php上传文件的限制和脚本响应时间的限制，导致phpMyAdmin无法导入大数据，对于导入大数据到mysql的，我以前使用过使用SHELL的方式导入几百兆的文件到mySQL数据库（<a href="http://www.lidecheng.com/blog/ssh-wget-input-large-sql-file/" title="利用SSH导入大数据到mysql的快捷方法">原文</a>），但是国内的虚拟主机绝大多数不像DreamHost一样开放SHELL权限，而且多数都是Windows Server服务器。我们自己又没有权限修改php.ini文件，对于这种情况我们可以使用phpMyAdmin提供的<strong>$cfg['UploadDir']</strong>方法，导入服务器上存在的.sql文件。</p>
<p>首先，找到phpMyAdmin的目录，找到根目录下的config.inc.php文件，然后找到 <strong>$cfg['UploadDir']</strong> ，通过注释(Directories for saving/loading files from server)就可以看出这是用来导入服务器上的SQL文件的方法。相对的就是 <strong>$cfg['SaveDir']</strong> ，顾名思义就是把导出的SQL文件保存在服务器上的目录中。</p>
<p>修改这个参数</p>
<blockquote><p>
$cfg['UploadDir'] = 'ImportSQLFile';<br />
$cfg['SaveDir'] = 'ExportSQLFile';
</p></blockquote>
<p>然后在phpMyAdmin中建立两个文件夹，ImportSQLFile和ExportSQLFile，一个用作大数据的导入，一个用作数据导出备份。</p>
<p>然后把我们需要导入的sql文件复制到ImportSQLFile中，上传到服务器上，选择需要导入的数据库名，选择导入(Import)，就会发现在<strong>文件导入(File to import)</strong>的地方多出来一个<strong>导入服务器上的SQL文件(web server upload directory)</strong></p>
<p><a href="http://www.lidecheng.com/uploads/2009/05/phpmyadminImportSQLFile.jpg"><img src="http://www.lidecheng.com/uploads/2009/05/phpmyadminImportSQLFile.jpg" alt="phpmyadmin在服务器上导入大数据" /></a></p>
<p>通过这种方法可以突破php.ini的上传文件限制，极限我没有试过，我上传的10M .sql文件成功导入到mysql中。</p>
<p>同理在导出/备份mysql数据的时候也可以直接保存在服务器上，保存到<strong>$cfg['SaveDir'] = 'ExportSQLFile';</strong>中指定的文件夹中</p>
<p><a href="http://www.lidecheng.com/uploads/2009/05/phpmyadminExportSQLFile.jpg"><img src="http://www.lidecheng.com/uploads/2009/05/phpmyadminExportSQLFile.jpg" alt="phpmyadmin在服务器上备份数据" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lidecheng.com/blog/phpmyadmin-import-excessive-sql-file/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>利用SSH导入大数据到mysql的快捷方法</title>
		<link>http://www.lidecheng.com/blog/ssh-wget-input-large-sql-file/</link>
		<comments>http://www.lidecheng.com/blog/ssh-wget-input-large-sql-file/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 04:55:34 +0000</pubDate>
		<dc:creator>lidecheng</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Operating System]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.lidecheng.com/blog/?p=121</guid>
		<description><![CDATA[任务目标：把一个340+MB的mysql数据库文件导入到DreamHost的mysql服务器上。
需解决的问题：
	<li>a.把另一个网站上的mysql数据库文件上传到我的远程服务器上。</li>
	<li>b.把这个340Mb的mysql数据库文件倒入到mysql服务器中。</li>
实现步骤：
<strong>利用SSH直接把网站上的数据下载到远程服务器上。</strong>
......]]></description>
			<content:encoded><![CDATA[<p>任务目标：把一个340+MB的mysql数据库文件导入到DreamHost的mysql服务器上。<br />
需解决的问题：</p>
<li>a.把另一个网站上的mysql数据库文件上传到我的远程服务器上。</li>
<li>b.把这个340Mb的mysql数据库文件倒入到mysql服务器中。</li>
<p>实现步骤：</p>
<h2>利用SSH直接把网站上的数据下载到远程服务器上。</h2>
<p>1、<strong>请确认你有SSH登入远程服务器的权限。</strong><br />
DreamHost用户可以到<a href="http://panel.dreamhost.com/" target="_blank">后台</a>（<a href="http://panel.dreamhost.com/" target="_blank">DreamHost Web Panel</a>）> Users > Manage Users > 选择你的用户并把连接方式改为shell access。<br />
2、<strong>首先用SSH登入到远程服务器：</strong><br />
使用软件<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" target="_blank">PuTTY</a>：<br />
<img src="http://www.lidecheng.com/uploads/2009/03/01-putty-login.png" alt="putty登陆" /><br />
在Host Name填入你的ftp登陆地址或IP，并且在连接方式（connection Type）选择SSH。<br />
3、<strong>登入服务器：</strong><br />
<a href="http://www.lidecheng.com/uploads/2009/03/02-login-ls.png" target="_blank"><img src="http://www.lidecheng.com/uploads/2009/03/02-login-ls.png" alt="使用SSH登入服务器" width="550" /></a><br />
在Login as处填入用户名，在password后填入密码，注意用户名是可见的而输入密码时是不可见的。如果用户名和密码正确会出现类似上图的欢迎界面。<br />
使用“ls”命令列出一下服务器上的文件和文件夹。<br />
4、<strong>使用“wget”命令在其他网站上下载数据文件：</strong><br />
<a href="http://www.lidecheng.com/uploads/2009/03/03-wget-file.png" target="_blank"><img src="http://www.lidecheng.com/uploads/2009/03/03-wget-file.png" alt="使用wget命令下载文件" width="550" /></a><br />
命令既：“wget {文件地址}”，如果正确会像上图一样有一个进度条、文件体积、传输速度和剩余时间的提示。<br />
如果在本地上传的话只有6k-10k的速度，但是使用wget下载文件就有1.42M/s的惊人速度，平均值也达到了900kb/s。340M的文件几分钟遍下载完成了。如果按平常方法，在网站上把文件下载到本地，再用ftp软件上传的话，没有十几个小时是不可能的。<br />
5、<strong>传输完成。</strong><br />
<a href="http://www.lidecheng.com/uploads/2009/03/04-wget-succ-ls.png" target="_blank"><img src="http://www.lidecheng.com/uploads/2009/03/04-wget-succ-ls.png" alt="传输完成" width="550" /></a><br />
文件下载完成，再用“ls”命令看一下。</p>
<h2>导入大文件到mysql数据库</h2>
<p>6、<strong>现在去建立一个目标数据库。</strong><br />
我建立的数据库名为：“ipdatatest2”<br />
<a href="http://www.lidecheng.com/uploads/2009/03/05-create-database.png" target="_blank"><img src="http://www.lidecheng.com/uploads/2009/03/05-create-database.png" alt="建立数据库" width="550" /></a><br />
7、<strong>用mysql命令吧数据文件导入数据库</strong><br />
<a href="http://www.lidecheng.com/uploads/2009/03/06-input-sql-file.png" target="_blank"><img src="http://www.lidecheng.com/uploads/2009/03/06-input-sql-file.png" alt="导入数据库" width="550" /></a><br />
在数据文件的当前位置使用mysql命令：</p>
<blockquote><p>mysql -h mysql.example.com -u username -ppassword dbname < outfile.sql</p></blockquote>
<p>8、<strong>检查数据库</strong><br />
<a href="http://www.lidecheng.com/uploads/2009/03/07-all-succ.png" target="_blank"><img src="http://www.lidecheng.com/uploads/2009/03/07-all-succ.png" alt="检查数据库" width="550" /></a></p>
<p>任务目标达成</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lidecheng.com/blog/ssh-wget-input-large-sql-file/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
