2006年09月12日

搬服务器,要了命  [ 分类:科技 Tech ]

  花95刀,买了bluehost的空间。从旧服务器上导出.sql文件,死活没法导入新服务器。折腾了10几个小时,发现必须在windows下取的数据库文件才能成功输入新服务器,在MacOSX下取的文件就是不行,不管用safari、camino、firefox、opera,都不行。不都是“save as file”吗,不同的操作系统保存的文件还不一样?古今奇闻,郁闷死。
  更糟糕的还在后头,因为MySql从3.x变成了4.x,果然如意料中出现乱码,后台里一堆堆的问号。学yanfeng改Collation、在mysql.pm里加“charset=utf-8”,都试过,就是无效。谁能告诉我应该怎么办呢?是不是非得这样麻烦呢?好痛苦,95刀呢,干点啥不好哎。
  感谢今天给了很大帮助的istefevilapenkuer,没你们估计我已经上长安街裸奔去了。
  让我们来听一首《要命歌》吧!

由 flypig 发表于 2006年09月12日 03:46
本文Trackback地址
http://www.flypig.org/mt3/mt-tbtbtb.cgi/915.
引用 Trackbacks

 

评论 Comments

弄好了没有呀?我也在重写css等等,眼睛都绿了……

evilape 发表于 2006年09月12日 04:29

应该问题不大吧,
1.先导出数据到sql
2.把sql改一改 去掉 characterset 等的东西
3.将sql导入

由 hihihi 发表于 2006年09月12日 06:19

服务器端的charset修改了没有.用phpmyadmin进去,设置里面也有个字符集呢我记得

伍岭 发表于 2006年09月12日 06:53

尝试在phphmyadmin里面设置编码导入把。

meteor 发表于 2006年09月12日 08:30

麻烦

interjc 发表于 2006年09月12日 09:26

3.2总是latin1编码,并不考虑存在其中的编码,编码是分解开来的,不考虑整体的多字节字符,所以可能是gbk,也可能是utf-8
从3.2种导出了的sql文件应该是ANSI编码,打开这个导出的sql文件,在头部加入一条"SET NAMES UTF8"(如果是GBK,就是SET NAMES GBK)
然后再导入数据库,这样就可以按照数据库自己的整理来存储正确的字符
确认你的数据库的表格的编码和整理是否是UTF-8
再然后,在PHP程序中,如果需要取出UTF-8编码,加入mysql_query('SET NAMES UTF8');
如果取出GBK,则是mysql_query('SET NAMES GBK');
类似的

ShiningRay 发表于 2006年09月12日 11:19

再说一句,如果你是用的Wordpress,想使用UTF-8整理,一定要自己hack wp-db.php中的内容
最简单的办法其实是将数据库整理设置为latin1

ShiningRay 发表于 2006年09月12日 11:21

bless
主要是编码的问题了,不知现在好了不。

BunnyQ 发表于 2006年09月12日 12:02

无知的说,Mac上的文本换行符是不一样的。
好像mac是lf, unix是cr,dos/win是crlf
不知道sql文件是不是也受影响了。

zhangchn 发表于 2006年09月12日 12:35

不至于吧,因为我就是把.sql下载下来,没有编辑哎。

感谢楼上各位,看晕了。T_T

由 flypig 发表于 2006年09月12日 12:49

你在windows/mac分别下载同一个文件,然后diff(mac下)两个文件。看看有没有不同。

zhangchn 发表于 2006年09月12日 13:10

会不会是换行符的问题?
windows是\n\r
mac是\r

benfuang 发表于 2006年09月12日 13:24

应该是换行符的问题

shunz 发表于 2006年09月12日 14:45

kingda那里的解决方式是最佳解决办法

shunz 发表于 2006年09月12日 15:07

“要命歌”好像不能听了艾~~~

少尉 发表于 2006年09月12日 15:23

sql导不进去肯定是换行符的问题,不过的确比较奇怪,按道理是服务器端生成的文件,应该是一样的才对。
在导入数据库前,确认一下导出来的文件在UTF8下,中文的显示是正确的。
将导出来的SQL里面CREATE TABLE后加上类似以下的内容:
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
建数据库的时候最好也指定UTF8:
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
MT是什么版本的,最新版本的话在设定中加入SetNames 1
如果是3.1以前的需要修改mysql.pm,取到数据库连接后,执行$driver->{dbh}->do("SET NAMES 'utf8'");

baotuo 发表于 2006年09月12日 15:23

传输的时候文本按ascii传的吧,换行符给转换了。

由 diego 发表于 2006年09月12日 16:28

是这样的,export出来的是.gz文件,上传上去用来import的也是.gz文件,应该不是换行符的问题吧?

由 flypig 发表于 2006年09月12日 20:04

哇靠,原来独立架站有这么多麻烦事......得了,彻底打消此念头。

现在搞定了没呢?

Chenta 发表于 2006年09月12日 23:09

你要新建一个数据库并设置成utf-8编码的
然后导出的数据也要是utf-8的
然后导入

如如何 发表于 2006年09月13日 02:34

现在的问题是,你的标题在 Bloglines 里面是乱码,为什么呢。

momo 发表于 2006年09月18日 13:36

谢谢momo,已经改好了 :)

由 flypig 发表于 2006年09月18日 14:49

应该是安装MYsql的时候设置的编码不对吧

我在东方广场哦 发表于 2006年09月18日 16:48
发表评论









记住我的信息?