Backup
嘗試導出特定 mysql 數據庫時明顯不同的大小
在一個相當舊版本的 CentOS-Bash “共享伺服器”環境中,我執行了以下命令:
current_date="$(date +%F-%T)" db_user_name_and_db_name="db-username_db-name" war="$HOME/public_html" # Web Application Root mkdir -p "${war}/mediawiki_general_backups"
我的問題是,如果我從 PHPMyAdmin GUI 快速導出相關數據庫(所有表),我會得到一個43MBs
.sql
的文件。 但是,如果我通過如下 CLUI 命令導出相同的數據庫,我會得到一個23MBs的文件:.sql
mysqldump \ -u "${db_user_name_and_db_name}" \ -p "${db_user_name_and_db_name}" \ > "${war}/mediawiki_general_backups/${db_user_name_and_db_name}-${current_date}.sql"
我不知道如何解釋這種差異;你?
做快速測試;在 PhpMyadmin 中導出一個表,並在終端中使用以下命令。
mysqldump -u $UserName -p database table > /tmp/table.sql
然後,用文本編輯器打開這兩個 SQL 文件;應該立即認識到差異:
我認識到從 PHPMyAdmin 導出的許多評論和
INSERT
數據的方式。例如:導出的 SQL 具有以下標頭:
-- phpMyAdmin SQL Dump -- version 4.0.10.20 -- https://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Oct 10, 2019 at 03:48 AM -- Server version: 5.1.73-log -- PHP Version: 5.3.3 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */;
轉儲的 SQL 具有以下標頭:
-- MySQL dump 10.13 Distrib 5.1.73, for redhat-linux-gnu (x86_64) -- -- Host: localhost Database: testing -- ------------------------------------------------------ -- Server version 5.1.73-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;