2011-08-14 69 views
0

繼我以前的我已經開始得到一個錯誤與解決方案的一個問題:MySQL錯誤1046:用cron優化表

ERROR 1046 (3D000) at line 1: No database selected 

Crong工作db-optimize.sh具有執行權限。

#!/bin/bash 
chk="select concat(TABLE_SCHEMA,'.', TABLE_NAME) from information_schema.tables where data_free>0;" 

for tbl in $(mysql -u root -ppass -N <<< $chk) 
do 
    mysql -u root -ppass -N <<< "optimize table $tbl" 
done 

我查了錯誤代碼,它說我需要在「MySQL」模式。雖然這看起來代碼已經在做什麼。

+1

難道'mysqlcheck的--optimize - 全databases'更簡單? –

+0

不,因爲目前它只會優化所需的表格,所以您的建議方法會優化所有內容。 –

回答

0

此問題是由不逃避表名引起的,因爲我有一個名爲「秀」表