MySQL Dump Command Documentation
1. Schema Export (Structure Only)
mysqldump -h 172.16.1.6 -u DB_USERNAME -p'DB_PASSWORD' \
--skip-add-drop-table --set-gtid-purged=OFF --no-data \
DATABASE_NAME > database_schema.sql
2. Data Export (Background Process)
nohup mysqldump -h 172.16.1.6 -u DB_USERNAME --password='DB_PASSWORD' \
--databases DATABASE_NAME --no-create-info --single-transaction \
--max_allowed_packet=500M --insert-ignore --set-gtid-purged=OFF \
--skip-triggers --no-create-db 2>/dev/null > database_backup.sql &
Security Recommendations
-
For Password Security (better approaches):
# Option 1: Prompt for password (most secure) mysqldump -h 172.16.1.6 -u DB_USERNAME -p DATABASE_NAME # (will prompt for password) # Option 2: Use MySQL config file # Create ~/.my.cnf with: # [client] # user = DB_USERNAME # password = DB_PASSWORD # host = 172.16.1.6 # Then run simply: mysqldump DATABASE_NAME
-
For Specific Tables (add to either command):
DATABASE_NAME table1 table2 table3
Example with Values
# Schema for 'inventory_db' (no data)
mysqldump -h 172.16.1.6 -u app_user -p'S3cur3P@ss!' \
--skip-add-drop-table --set-gtid-purged=OFF --no-data \
inventory_db products suppliers > inventory_schema.sql
# Data backup for specific tables (background)
nohup mysqldump -h 172.16.1.6 -u app_user --password='S3cur3P@ss!' \
inventory_db orders order_items --no-create-info --single-transaction \
--max_allowed_packet=500M --insert-ignore --set-gtid-purged=OFF \
--skip-triggers --no-create-db 2>/dev/null > orders_backup.sql &