在使用国外空间时,有时需要用phpMyadmin导入sql数据库文件,由于SQL数据库文件比较大或者国外服务器速度慢,经常会在导入sql数据库时出错,提示Fatal error: Maximum execution time of 30 seconds exceeded,或者提示找不到服务器。
sql文件导入的解决方案:
可以用crontab来运行命令来导入数据库(cron jobs的设置)。
1,SQL文件第一行加入如下内容
/*!40101 SET NAMES utf8 */;
2,将SQL文件另存为UTF-8 NO BOM格式
3. 通过ftp上传你的备份sql文件,放在根目录下就可以了。
4. 进入你的cPanel, 看到cron jobs 这个图标,点击进去,然后选Advanced (Unix Style) (呵呵我比较习惯unix哈)。
因为只需要运行一次,所以Minute, Hour, Day, Month 都填入准备运行的具体时间,留两分钟余量就行(如果虚拟主机不在本地,可以在FTP上查看一下主机时间), Weekday填*号算了。
Command 填待运行的命令,就是导入命令:
mysql -u 用户名 -p口令 [-h 数据库主机] 数据库 < 数据库备份.sql
假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:
mysql -h10.0.0.1 -uroot -p123
(注:u与root可以不用加空格,其它也一样)
例如,我的设置如下:
mysql -ujia_jia -pjia -hlocalhost jia_jia < /home/你的cpanel用户名/public_html/jia.sql
5.在phpMyAdmin里查看导入情况。
速度很快的,祝你成功。
一点说明:
在导入数据时,如果目标数据库或表是UTF-8字符集的,而导入SQL中有中文,可能在最终结果中出现乱码,
此时只需在导入的SQL文件第一行加入如下内容即可。
/*!40101 SET NAMES utf8 */;
然后将SQL文件另存为UTF-8 NO BOM格式,最后进行导入。这样就不会出现乱码了。
MYSql经常会有编码问题;;
这些也太专业了吧