iT邦幫忙

0

安裝MailWatch時遭遇錯誤...ERROR 1064 (42000)

小弟最近架設mail server

裝了且測試ok(Postfix+MailScanner+Spamassassin+ClamAV)皆運作順利成功

待要裝MAILWATCH(1.0.5) .依官方安裝程序

匯入其内部create.sql 建立資料庫時 mysql -u root -p mysql < create.sql

,MySQL 卻出現Error 如下訊息

ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-------------------------------------------------------
CREATE DATABASE /*' at line 1

本人目前資料庫使用MySQL 5.5.10 版本(CentOS 5 平台),可否請問高手有效率解法

謝謝!

PS>去國外網站上看同好也遭遇同樣問題,但未見有效解決方法

外獅佬 iT邦大師 1 級 ‧ 2011-03-26 21:01:37 檢舉
DEFAULT CHARSET=utf8
請改成DEFAULT CHARACTER SET=utf8
外獅佬 iT邦大師 1 級 ‧ 2011-03-26 21:02:50 檢舉
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

8
逮丸逮丸
iT邦大師 1 級 ‧ 2011-03-26 08:19:04
最佳解答

問題歸結起來,其實是把mysql 語法匯入的問題。
mailscanner裡的create.sql是從3.23.58的版本dump出來,
而目前mysql的版本是5.5.10。
我是這樣子試驗出來:
先mysqldump -u root -p --all-databases > all.sql
匯出新sqldump的結果,然後再觀察測試一下……
得到的結論是:
1.把 create.sql 裡的 timestamp(14)換成 timestamp
2.把 create.sql 裡的 TYPE=MyISAM 換成 ENGINE=InnoDB
用vi的話用這樣語法就可換好:

&lt;pre class="c" name="code">1,$ s/timestamp(14)/timestamp/g
1,$ s/TYPE=MyISAM/ENGINE=InnoDB DEFAULT CHARSET=utf8/g

這樣 mysql -u root -p < create.sql 就可順利匯入無錯誤訊息了。

chaconx iT邦新手 5 級 ‧ 2011-03-26 20:09:21 檢舉

感謝回覆,已依照您修改成

CREATE TABLE IF NOT EXISTS audit_log (
20 timestamp timestamp NOT NULL,
21 user varchar(20) NOT NULL default '',
22 ip_address varchar(15) NOT NULL default '',
23 action text NOT NULL
24 ) TYPE=InnoDB DEFAULT CHARSET=utf8 ;

但匯入mysql 出現另一問題

ERROR 1064 (42000) at line 19: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server ver sion for the right syntax to use near 'TYPE=InnoDB DEFAULT CHARSET=utf8' at line 6

本人提供您完整create.sql 做參考,謝謝 使用Mailwatch 1.0.5

http://home.so-net.net.tw/keynes_0918/create.sql

再麻煩您指點迷津,感恩

chaconx iT邦新手 5 級 ‧ 2011-03-26 20:19:07 檢舉

補充將TYPE=InnoDB DEFAULT CHARSET=utf8 更改為ENGINE=InnoDB 尚出現錯誤

我要發表回答

立即登入回答