NodeJS MySQL 轉儲:解決空檔案問題
在嘗試轉儲 MySQL 資料庫時,會出現檔案已建立但仍為空的問題。本文檢查了此行為的潛在原因,並根據給定的程式碼片段提供了解決方案。
辨識問題
最初的問題源自於在發出查詢之前無法連接到資料庫。此外,connection.destroy() 方法被過早調用,導致掛起的 SQL 呼叫中斷。
解決連接和回調問題
為了修正這些問題,進行了以下修改:
- 新增了一個connection.connect() 回調,其中放置了所有後續代碼。
- 將 save_backup 呼叫移至填滿 CREATE TABLE 語句的內部回呼內。
- 實作了一個「計數器」來追蹤未完成的 SQL 呼叫的數量,並且僅在所有呼叫完成時才呼叫 save_backup 和 connection.destroy()。
包含修復的程式碼片段
<code class="javascript">var mysql_backup = function(){ //... this.connection.connect(function (err, empty) { //... }); //... this.get_tables = function(callback){ var counter = 0; var me = this; this.query('SHOW TABLES', function(tables) { for (table in tables){ counter++; me.query( 'SHOW CREATE TABLE ' + tables[table].Tables_in_mvc, function(r){ //... counter--; if (counter === 0){ me.save_backup(); me.connection.destroy(); } } ) } }); }; //... }; var db = new mysql_backup; db.init(); db.get_tables();</code>
其他注意事項
為了增強程式碼的可讀性和有效性,進一步的改進可以包括:
- 為了清晰起見,使用「self」而不是「me」。
- 使用數字循環而不是「for (... in ...)」語法。
- 實現更強大的錯誤處理並使用 Promise 進行更清晰的回調管理。
結論
透過修正連接問題、適當安排回調執行順序以及追蹤未完成的 SQL 調用,可以解決檔案清空問題,從而成功「轉儲」MySQL 資料庫。
以上是為什麼我的 NodeJS MySQL 轉儲檔案為空以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用MySQL的Alter Table語句修改表,包括添加/刪除列,重命名表/列以及更改列數據類型。

文章討論了為MySQL配置SSL/TLS加密,包括證書生成和驗證。主要問題是使用自簽名證書的安全含義。[角色計數:159]

文章討論了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比較了它們對初學者和高級用戶的功能和適合性。[159個字符]

本文討論了使用Drop Table語句在MySQL中放下表,並強調了預防措施和風險。它強調,沒有備份,該動作是不可逆轉的,詳細介紹了恢復方法和潛在的生產環境危害。

本文討論了在PostgreSQL,MySQL和MongoDB等各個數據庫中的JSON列上創建索引,以增強查詢性能。它解釋了索引特定的JSON路徑的語法和好處,並列出了支持的數據庫系統。

文章討論了使用準備好的語句,輸入驗證和強密碼策略確保針對SQL注入和蠻力攻擊的MySQL。(159個字符)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具