迁移数据,连接字符集

时间:2012-10-12 10:07:43

标签: mysql character-encoding database-connection mysqldump

(编辑2:信息已经进来,谢天谢地。它只能通过ODBC访问,我可以在其中设置连接字符集以匹配我为MySQL数据库设置的任何内容。所以整个问题简化为:如果我设置ODBC和数据库的连接 charset到UTF-8,我完成了它不会破坏数据吗?(服务器/数据库charset是latin1)。我很乐意接受一个简单的是或否简短说明原因。

---------------其余的是原始背景信息,不再真正相关.------------

(编辑:澄清:数据已经正确导入,这只是关于连接字符集的问题。)

我正在尝试决定是否将 连接 字符集更改为我新创建的MySQL数据库的排序规则和服务器字符集。

它的服务器和排序规则字符集设置为与运行MySQL 4.1 - latin1的服务器相同。某些数据已经使用mysql.exe导入并验证为正确。

当服务器管理员安装MySQL 5.5并在一个时间点创建新数据库时,连接字符集未从默认的UTF-8更改。

旧服务器报告没有为排序规则或连接字符集设置变量,所以我的问题是:(我假设当前设置,UTF-8,应该是最正确的路径)

  • 在哪里查找设置内容(来自经验的提示)
  • 如果我选择将其设置为latin1,如果在某处写入数据库的脚本可能再次破坏数据
  • 或者是否可以随意打开和关闭数据,而不会破坏数据,即如果我可以推迟决定。

数据库服务器管理员没有给我答案的信息,而且旧数据库中缺少信息,我想确定但不能。

这是一个1GB的.sql文件,需要在TextPad中逐步编辑才能导入,这样可以节省时间,知道这是否是一个关键设置。

我目前最好的计划是不更改设置,导入数据和备份 - 如果脚本因错误设置连接字符集而破坏数据,则会恢复备份。你看到这个计划有问题吗?

2 个答案:

答案 0 :(得分:0)

哦,我的,我真的应该花更多的时间来阅读你的问题,是的,拥有一个数据库的重点是让数据持续存在,如果由于不正确的字符集问题而不断恢复备份,数据不是持久的,那就更好了计划将更新您的脚本,以便所有使用相同的字符集并将数据库中不在该字符集中的任何字段转换为相同的字符集。

答案 1 :(得分:0)

迁移数据时,

  1. 将目标数据charset + collat​​ion设置为与古代MySQL数据库版本相同。你可能不得不将Type = to Engine =,timestamp(xx)更改为timestamp,将 some float(xx,xx)更改为使用f.ex的巨大sqldump中的double。使用mysql.exe

  2. 导入之前的TextEdit
  3. 找出哪些连接(如果有)将写入表,以及它们的源字符集是否与数据库的字符集不同。如果是,请修改数据源的连接属性,以便连接将源数据转换为数据库字符集。