Mysql

MariaDB mysqldump 缺少所有數據 - 我如何強制包含它?

  • September 24, 2019

多年來,我一直在使用 mysqldump 沒有太多麻煩。最近我加入了一個使用“MySQL dump 10.14 Distrib 5.5.52-MariaDB, for Linux (x86_64)”的項目,當我嘗試進行轉儲時,它包括所有創建表語句,以及如果我包括的常式——常式,但它不包含任何數據。文件中根本沒有 INSERT 語句。

我在這個 DBMS 實例中嘗試了多個數據庫,並且我嘗試過使用幾個不同的使用者帳戶,包括 root。我檢查了我使用的使用者是否可以訪問數據,如果我從這些使用者名直接登錄到 mysql,我可以瀏覽數據。

我一直無法在網上找到任何幫助資訊,因為所有文章似乎都假設插入數據就在那裡(我認為這是正確的)。有沒有人以前見過這樣的事情,或者有沒有建議我可以嘗試獲得真正的數據庫備份?

我承認這是一個非常舊的 MariaDB 版本,我是團隊的新手,我願意更新它,但直到我知道數據已成功備份到某個地方之後。

提前感謝您的幫助,這真的讓我很困惑。

這是我正在嘗試的:

/usr/bin/mysqldump -u root -p --all-databases  > dbbackup-dump-$(date +\%Y-\%m-\%d).sql

/usr/bin/mysqldump -u root -p -d databasename  > dbbackup-dump-$(date +\%Y-\%m-\%d).sql

答案很簡單。-d代表沒有數據!

這是MariaDB 文件

不寫入任何表格行資訊(即不轉儲表格內容)。如果您只想轉儲表的 CREATE TABLE 語句(例如,通過載入轉儲文件來創建表的空副本),這很有用。

只要擺脫了-d,你就可以走了。

更新 2019-09-24 11:04 EDT

讓我澄清一下為什麼你會看到你所看到的,

  • 當您使用--databases時,該行USE databasename;被添加INSERT INTO到每個命名數據庫的所有語句之前。(請查看MySQL Docs on--databases
  • 當您使用--all-databases時,該行USE databasename;被添加INSERT INTO到 MySQL 實例中每個給定數據庫的所有 s 之前(請查看MySQL Docs on--all-databases
  • 當您使用 時-d,您是在告訴 mysqldump 不要轉儲數據,無論您是否命名數據庫。即使您使用--databaseor all-databases,也不會輸出任何數據。(請查看MySQL 文件--no-data

引用自:https://dba.stackexchange.com/questions/249492