小弟最近架設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>去國外網站上看同好也遭遇同樣問題,但未見有效解決方法
問題歸結起來,其實是把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的話用這樣語法就可換好:
<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 就可順利匯入無錯誤訊息了。
感謝回覆,已依照您修改成
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
再麻煩您指點迷津,感恩
補充將TYPE=InnoDB DEFAULT CHARSET=utf8 更改為ENGINE=InnoDB 尚出現錯誤