2011-03-13 82 views
0
How to truncate MySQL table on boot, 
but want make sure script execute after mysqld started 

mysql -h localhost -u root -pPASSWORD DBNAME -e "truncate table tables" 

謝謝。mysql在啓動時截斷表

+0

什麼操作系統? –

+0

它在Debian上。 – njai

回答

1

創建一個腳本startup.sql,將它存儲在您的數據目錄中,使其可讀取到服務器。 startup.sql腳本包含您需要的語句,例如「TRUNCATE TABLE tables」。

以下行添加到您的my.cnf文件中的[mysqld]部分:

初始化文件= startup.sql

停止並重新啓動服務器來測試。

相關文檔可以在這裏找到:http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_init-file

+0

它的工作謝謝你。 – njai

0

取決於你爲什麼需要它截斷......

或許可以考慮使用這將是「截斷」服務器重新啓動無論如何,因爲它是隻在內存中保存一個內存表...

否則yoou coud添加一行以截斷每個需要截斷到設置腳本的表,並確保腳本在啓動時被調用。

+0

在我的目的中,因爲在mysql表中與iptables規則相關,如果存在於mysql表中,它不會創建新的iptables規則。那麼如何啓動腳本看起來像? – njai

+0

把所有的truncate語句放在一個文本文件中(確保指定了schema.table,否則會破壞某些東西)。找到啓動mysql的命令並添加--defaults-file =「path/to/your/file.txt」(如果已設置),那麼我建議您將語句添加到此文件中。 –