2017-05-16 43 views
2

或其他一些SHOW COLUMNS語法查詢我得到這個奇怪的錯誤消息:表「/tmp/#sql_1_0.MAI」當我嘗試使用<code>SHOW FULL FIELDS FROM</code>是隻讀

MariaDB [mysql]> show full fields from user; 
ERROR 1036 (HY000): Table '/tmp/#sql_126_0.MAI' is read only 

TMP目錄存在並具有777權限。 更改tmp目錄my.cnf沒有幫助。

Chown將該dir添加到mysql用戶也沒有幫助。

重現步驟:

  1. 安裝CentOS 7成虛擬機(或任何足夠舊內核)
  2. CentOS上安裝多克7(這樣我們就可以利用高山)
  3. 創建基於高山圖像與MariaDB的28年1月10日(apk add mysql mysql-client),或者使用容易獲得的圖像
  4. 運行MySQL容器docker run --name mariadb_container mariadb_image
  5. 連接MySQL使用docker exec -ti mariadb_container mysql -A
  6. 運行SHOW FULL FIELDS FROM some_table查詢

如何跟蹤這個問題有什麼建議?

+0

爲了跟蹤這個問題,我使用了'strace'。我已經在失敗和成功的重現步驟上運行它。我發現不同之處在於失敗的'readlink(「/ proc/self/fd/43」'系統調用。這導致我[此問題](https://bugs.alpinelinux.org/issues/7345 )。谷歌搜索'/ proc'' readlink'問題導致[這裏](https://github.com/moby/moby/issues/18883)。之後,我試圖grep MariaDB源代碼,發現[this補丁製作到10.1.22](https://github.com/MariaDB/server/commit/b27fd90ad36f4194665744cc1dcdd05f2d0b47ef#diff-bc0905410089f46d3bc9a8331697da6a)。這裏我們是。 – Vanuan

回答

0

你應該嘗試降級MariaDB的到版本10.1.17(爲我工作)

+0

看起來問題似乎介於10.1.21和10.1.22之間10.1。19沒有問題 – Vanuan

1

警告:這是一個工作原理,而不是由任何獨立消息來源的證實。

有故障的3分可以解釋爲什麼這個錯誤是非常特殊的條件(CentOS 7dockeralpinemariadb 10.1.22+)下可重複:

鏈接討論:

鏈接代碼:

途徑來解決:

解決方法:

+0

這是一個很好的答案。幹得好! – raarts

相關問題