没有SSH,如何导入大数据库MySQL?
在使用美国主机过程中,MySQL数据库可以说是我们使用最多的数据库,管理MySQL的工具通常是phpMyAdmin,导入导出MySQL数据库通常也可以通过phpMyAdmin来完成。
使用phpMyAdmin导入数据库时,会有相应的限制,比如数据库文件大小不能大于2M等(取决于相关的设定,但肯定是有限制的)。另外,由于php有执行时间的限制,一般导入比较大的MySQL数据库时,可能会出现无法完全导入的情况。
前些时候,使用了一个叫StableHost的主机,通过phpMyAdmin导入2M多的数据库(gzip压缩的,解压后有将近60M),试了几次都无法导入成功,出现的错误是php脚本执行时间超时。又没有SSH,无奈之下,搞了一个php程序来调用系统命令导入了这个数据库。
搞了一个简单的php程序,使用php的函数exec()来执行系统命令,实现在没有SSH情况下,导入比较大的MySQL数据库。
$ret = exec($cmd);
将数据库文件通过FTP上传到空间上并解压,输入的命令$cmd类似为:
mysql –force –quick -h mysqlhost -u Username -pPassword DatabaseID < File.sql
为了保险起见,北山还在命令的后面加了一个&, 让后台运行命令,这样php程序就可以很快结束,以免超时。呵呵~~很顺利的把那个数据库。
还有,不仅仅是在导入数据库时采用这种方式,在在线压缩和解压文件时,北山也经常通过这种方式来做。运用的命令当然是Linux主机基本都支持的命令tar和gzip。有些Linux美国主机也支持zip命令,但是有些不支持,为了保险起来,北山还是建议使用tar命令来压缩和解压缩文件,避免一些不必要的麻烦。
最后附上北山使用的这个非常简单的php程序,点击这里下载,使用方法也非常简单
1. 将这个php程序 beishan-info-exec.php 上传到空间上
2. 运行 beishan-info-exec.php , 比如http://www.your-domain.com/beishan-info-exec.php
3. 在页面中输入要执行的命令,比如数据库导入命令,或者是压缩解压文件命令等。
如果你数据库主机是localhost,也就是本机,简单使用下面的命令就可以了
mysql -u Username -pPassword DatabaseID < File.sql
其中Username,Password,DatabaseID,File.sql等就是字面的意思,分别是数据库用户名,密码,数据库名称,以及要导入的数据库文件名
使用SSH和日志中提到的方法,还是需要了解一点Linux命令
备注:文件名称以及上传目录可以根据自己的实际情况进行修改,不要让别人猜出来了
,否则很危险,建议使用完后马上删除这个程序,确保安全。当然,也没必要猜测北山的空间上是否有这个程序,呵呵~~没有这个程序
来自:北山美国主机评论