2015-12-12 17 views
0

有沒有辦法在轉儲時禁用此變量,而無需訪問此變量? (對於例如:AWS實例與只讀訪問)MySQL轉儲 - 如何在轉儲時禁用lowercase_table_names,而無需訪問變量

有兩個表名稱爲fooFOO,這正在創造一個問題mysqldump: Got error: 1066: Not unique table/alias: 'foo

+0

您必須分別轉儲表,然後修復您的數據庫方案。一般來說,所有的表名都應該保持小寫。原因是,轉儲混合大小寫名稱會導致在大小寫不敏感的文件系統上出現大問題,例如MS-Windows。爲了防止這些煩人的問題最安全的是堅持上面的一般規則。 – arkascha

+0

大小寫表是由錯誤創建的,而小寫變量爲0.我們將變量設置爲1.我試圖刪除大寫字母(FOO),但這實際上會刪除(foo),因爲變量現在爲1 ! – arunwithasmile

+0

只需暫時重命名其中一個表格,以便獲得轉儲。處理您控制的導入實例中的案例問題。 – pvg

回答

0

我通過單獨傾銷每個表做了。奇怪,但幫助。感謝@arkascha提出這個建議。

0

您目前還沒有找到linux下mysql的表名,怎麼把它的默認區分大小寫。對於Windows而言,它不區分大小寫。

我不能猜測,如果忽略大小寫敏感適用於你。但是你可以在my.conf中添加一行。即使linux中的mysql不區分大小寫。

mysqlserver:~# vi /etc/mysql/my.cnf 
... 
[mysqld] 
lower_case_table_names = 1 

另外按照表命名約定mysql表名必須小寫。

http://www.toadworld.com/platforms/mysql/w/wiki/6103.naming-conventions

+0

文件系統區分大小寫或不在不同系統中,而不是系統本身。像MyISAM這樣的簡單存儲引擎將表格存儲在表名稱旁邊的文件中,這會導致問題。 – arkascha

+0

我沒有my.cnf文件。這是一個亞馬遜實例,我無法訪問變量。 – arunwithasmile

+0

在amazon實例中也有my.cnf。 – Naruto