一、mysql備份
1、備份命令
格式:mysqldump -h主機ip -p埠 -u使用者名稱 -p密碼 --database 資料庫名 > 檔名.sql
# 本地備份可以不新增埠和主機ip,username、passward是資料庫使用者名稱和密碼2、備份壓縮mysqldump -h *.*.*.* -p 3306 -u username -p password --database mysql > /data/backup/mysql.sql
格式:mysqldump -h主機ip -p埠 -u使用者名稱 -p密碼 --database 資料庫名 | gzip > 檔名.sql.gz
# 匯出的資料有可能比較大,不好備份到遠端,這時候就需要進行壓縮3、備份同個庫多個表mysqldump -h *.*.*.* -p 3306 -u username -p password --database mysql | gzip > /data/backup/mysql.sql.gz
格式:mysqldump -h主機ip -p埠 -u使用者名稱 -p密碼 --database 資料庫名 表1 表2 .... > 檔名.sql
mysqldump -h *.*.*.* -p 3306 -u username -p password mysql1 mysql2 mysql3> /data/backup/mysql_db.sql4、同時備份多個庫
格式:mysqldump -h主機ip -p埠 -u使用者名稱 -p密碼 --databases 資料庫名1 資料庫名2 資料庫名3 > 檔名.sql
mysqldump -h *.*.*.* -p 3306 -u username -p password --databases mysql1 mysql2 mysql3 > /data/backup/mysql_db.sql5、備份例項上所有的資料庫
格式:mysqldump -h主機ip -p埠 -u使用者名稱 -p密碼 --all-databases > 檔名.sql
mysqldump -h *.*.*.* -p 3306 -u username -p password --all-databases > /data/backup/mysql_db.sql6、備份資料出帶刪除資料庫或者表的sql備份
格式:mysqldump -h主機ip -p埠 -u使用者名稱 -p密碼 --add-drop-table --add-drop-database 資料庫名 > 檔名.sql
mysqldump -h *.*.*.* -p 3306 -u username -p password --add-drop-table --add-drop-database mysql > /data/backup/mysql_db.sql7、備份資料庫結構,不備份資料
格式:mysqldump -h主機ip -p埠 -u使用者名稱 -p密碼 --no-data 資料庫名1 資料庫名2 資料庫名3 > 檔名.sql
mysqldump -h *.*.*.* -p 3306 -u username -p password --no-data –databases mysql1 mysql2 mysql3 > /data/backup/structure_db.sql8、還原mysql資料庫的命令
# database為資料庫名9、還原壓縮的mysql資料庫mysql -h *.*.*.* -u username -p password database < backupfile.sql
# database為資料庫名10、將資料庫轉移到新伺服器gunzip < backupfile.sql.gz | mysql -u username -p password database
# database為資料庫名11、--master-data 和--single-transactionmysqldump -u username -p password database | mysql –host=*.*.*.* -c database
在mysqldump中使用--master-data=2,會記錄binlog檔案和position的資訊 。
--single-transaction會將隔離級別設定成repeatable-commited。
12、匯入資料庫
常用source命令,用use進入到某個資料庫,mysql>source d:\test.sql,後面的引數為指令碼檔案。
13、檢視binlog日誌
檢視binlog日誌可用命令 mysqlbinlog binlog日誌名稱|more
14、general_log
general_log記錄資料庫的任何操作,檢視general_log 的狀態和位置可以用命令show variables like "general_log%" ,開啟general_log可以用命令set global general_log=on
二、增量備份
1、首先做一次完整備份:
# 這時候就會得到乙個全備檔案test.sql在sql檔案中我們會看到:mysqldump -h *.*.*.* -u username -p passward -p 3310 --single-transaction --master-data=2 test>test.sql
-- 是指備份後所有的更改將會儲存到bin-log.000002二進位制檔案中。2、在test庫的t_student表中增加兩條記錄,然後執行flush logs命令。change master to master_log_file='bin-log.000002', master_log_pos=107;
這時將會產生乙個新的二進位制日誌檔案bin-log.000003,bin-log.000002則儲存了全備過後的所有更改,既增加記錄的操作也儲存在了bin-log.00002中。
3、再在test庫中的a表中增加兩條記錄,然後誤刪除t_student表和a表。
a中增加記錄的操作和刪除表a和t_student的操作都記錄在bin-log.000003中。
1、首先匯入全備資料
# 也可以直接在mysql命令列下面用source匯入2、恢復bin-log.000002mysql -h *.*.*.* -u username -p passward -p 3310 < test.sql
mysqlbinlog bin-log.000002 |mysql -h *.*.*.* -u username -p passward -p 33103、恢復部分 bin-log.000003
在general_log中找到誤刪除的時間點,然後更加對應的時間點到bin-log.000003中找到相應的position點,需要恢復到誤刪除的前面乙個position點。
可以用如下引數來控制binlog的區間
--start-position 開始點 --stop-position 結束點
--start-date 開始時間 --stop-date 結束時間
找到恢復點後,既可以開始恢復。
mysqlbinlog mysql-bin.000003 --stop-position=208 |mysql -h *.*.*.* -u username -p passward -p 3310
mysql 命令列下備份及還原
1 以gzip格式壓縮備份,並以日期為檔名.備份 mysqldump hhostname uusername ppassword databasename gzip databasename date y m d sql.gz 還原 gzip d databasename date y m d sq...
mysql 命令列 回車 mysql命令列操作
顯示資料庫 show databases 當前資料庫 select database 顯示表show tables 更改表名稱 alter table 原表名 rename 新錶名 rename table 原表名 to 新錶名 檢視系統支援的引擎 show engines 檢視表的引擎 show ...
命令列 mysql 語句 MySQL命令列語句學習
1 mysql root 進入資料庫 2 help h 幫助 3 show databases 展示已經安裝的庫 4 create database 建立新的資料庫 5 drop database 刪除資料庫 6 use 使用資料庫 7 create table user id int,userna...