或其他一些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用戶也沒有幫助。
重現步驟:
- 安裝CentOS 7成虛擬機(或任何足夠舊內核)
- CentOS上安裝多克7(這樣我們就可以利用高山)
- 創建基於高山圖像與MariaDB的28年1月10日(
apk add mysql mysql-client
),或者使用容易獲得的圖像 - 運行MySQL容器
docker run --name mariadb_container mariadb_image
- 連接MySQL使用
docker exec -ti mariadb_container mysql -A
- 運行
SHOW FULL FIELDS FROM some_table
查詢
如何跟蹤這個問題有什麼建議?
爲了跟蹤這個問題,我使用了'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