phpbb2.0.22 with MySQL5 under win32 資料庫轉移到 phpbb2.0.22 with PostgreSQL8 under Debian GNU/Linux
目前轉換 sql 工具使用: mysql2psgql-1.2
The mysql2psql Project -- Conversion from MySQL to PostgreSQL
從 win32 上面使用 phpbb2 後台備份工具, 備份完整: phpbb_db_backup.sql, upload 到 linux 上面, 使用 mysql2pgsql perl script 轉換到 phpbb_db_backup.pg.sql 檔案中間發生了錯誤. 以下是轉換過程:
代碼: 選擇全部
$ perl mysql2pgsql.perl phpbb_db_backup.sql phpbb_db_backup.pg.sql
utf8 "\xE7" does not map to Unicode at mysql2pgsql.perl line 343, <IN> line 1194.
Malformed UTF-8 character (unexpected non-continuation byte 0x27, immediately after start byte 0xe7) in pattern match (m//) at mysql2pgsql.perl line 327, <IN> line 1194.
Malformed UTF-8 character (unexpected non-continuation byte 0x27, immediately after start byte 0xe7) in substitution (s///) at mysql2pgsql.perl line 789, <IN> line 1194.
Malformed UTF-8 character (fatal) at mysql2pgsql.perl line 790, <IN> line 1194.可以發現這是 utf-8 encoding.
在 google 搜尋錯誤訊息: Malformed UTF-8 character 找到不少.
例如:
perl script 加入 use unicode;
shell environment: export LANG=C
不過仍然無法解決我的問題. 或許我還得再找找.
目前分別測試過 perl with cygwin, Debian GNU/Linux, win32
另外, 以後可能要解決的問題是, win32 上面 phpbb2 MySQL5 擁有者是 root, 但是 linux 上面 PostgreSQL 擁有者似乎不能是 root.

