遷移資料庫可能會帶來意想不到的挑戰,因為某些功能可能不再如預期運作。對於 MySQL,曾經用於將資料匯出到文字檔案的 SELECT * INTO OUTFILE 語句由於安全原因不再起作用。
但是,可以將 LOAD DATA INFILE 語句修改為 LOAD DATA LOCAL INFILE,允許從本機檔案匯入資料。這就引出了一個問題:為什麼沒有等價的 SELECT INTO OUTFILE LOCAL?
根據 MySQL 手冊,SELECT * INTO OUTFILE 主要用於在伺服器上快速產生文字檔案。但是,出於安全考慮,不允許在遠端客戶端上建立文件。
作為替代方案,可以使用以下命令在客戶端主機上產生檔案:
mysql -h my.db.com -u username -p password db_name -e'SELECT foo FROM bar' > /tmp/myfile.txt
關於 MariaDB ,它似乎沒有提供此問題的直接解決方案。但是,它為資料傳輸提供了額外的安全功能,例如限制特定使用者或 IP 位址的檔案存取的能力。
以上是為什麼 MySQL 不提供「SELECT * INTO OUTFILE LOCAL」等效項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!