從MySQL 轉儲中刪除DEFINER 子句
MySQL 轉儲包含DEFINER 子句,它指定建立資料庫物件的使用者和主機。但是,出於安全或其他原因,您可能想要刪除這些子句。
使用文字編輯刪除 DEFINER 子句
一種方法是使用文字編輯器。搜尋包含 DEFINER 子句的行(例如“DEFINER=root@localhost”)並將其替換為空字串 ("") 或任何所需的值。
使用 Perl 刪除 DEFINER 子句
Perl 可用來從轉儲中移除子句。使用以下命令,將「mydatabase.sql」替換為轉儲檔案的名稱:
perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
管道輸出以刪除DEFINER 子句
您也可以刪除子句透過像sed:
mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
這樣的指令來管道轉儲輸出,此指令將以星號(*) 取代DEFINER 子句。您可以根據需要進一步自訂替換模式。
注意:
以上是以下是基於所提供文章的一些標題,格式為問答形式: 選項 1(直接且集中): * 如何從 MySQL 轉儲中刪除 DEFINER 子句? 選項 2(更具體):的詳細內容。更多資訊請關注PHP中文網其他相關文章!