轉載自http://blog.chinaunix.net/uid-20577907-id-161611.html
比如我們要備份mysql中已經存在的名為linux的資料庫,要用到命令mysqldump
命令格式如下:
[root@linuxsir01 root]# mysqldump -u root -p linux > /root/linux.sql
Enter password:在這裡輸入資料庫的密碼
通過上面的命令,我們要明白兩件事,首先備份資料庫是要以資料庫管理員的身份備份;其次:備份目的地是/root,備份的檔名是linux.sql。其實備份的位置和檔名,根據自己的情況來定。檔名可以自己來取,路徑也可以自己來安排;
比如我想把linux的資料庫備份到/home/beinan,資料庫的檔名為linuxsir031130.sql,所以應該輸入如下的命令。
[root@linuxsir01 root]#mysqldump -u root -p linux > /home/beinan/linuxsir031130.sql
Enter password:在這裡輸入資料庫管理員root的資料庫密碼
如果資料量大會佔用很大空間,這時可以利用gzip壓縮資料,命令如下:
#mysqldump -u root -p tm | gzip > tm_050519.sql.gz
這樣我們到/home/beinan目錄下就能發現mysql中名為linux的資料庫的備份檔案linuxsir031130.sql
綜上所述,我們學習時要學會變通。
恢復:
首先我們還是要操作上面幾個過程,比如新增資料庫管理員(如果您沒有新增過mysql資料庫管理員的話),建立資料庫等。
比如我們要把在/home/beinan這個目錄中的linuxsir031130.sql這個備份,匯入名為linux的資料庫中,應該如下操作;
[root@linuxsir01 root]#mysql -u root -p linux < /home/beinan/linuxsir031130.sql
Enter password:在這裡輸入密碼
如果機器好,資料庫比較小,幾分鐘就好了。
如何匯出資料庫表的資料?(不同於備份哦)
#mysql
(#mysql>use linux;)#可有可無
#mysql>select * from linux.table-name into outfile "/home/table-name.txt";
#/home/table-name.txt 可能會報錯,如果這樣去掉/home直接"table-name.txt"
預設儲存在/var/lib/mysql/table-name.txt
對mysql資料庫常用命令的一點補充;
幾個常用的mysql相關的管理命令
mysql 命令:基本文字的,顯示和使用的mysql資料庫。前面已經簡單的提過用法;比如登入等。
mysqladmin 命令,用來建立和維護mysql資料庫的命令,前面已經簡單的提過;
isamchk 是用來修復、檢查和優化.ism字尾的資料庫檔案;
mysqldump 是用於備份資料庫,前面已經簡單的說明過;
myisamchk 用來修復.myi字尾的資料庫檔案;
比如我們要檢查名為linux的資料庫.myi資料庫表是否存在問題,應該用下面的命令;
要把mysqld伺服器停下來
[root@linuxsir01 root]# /opt/mysql/share/mysql.server stop
然後執行
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk /opt/mysql/var/linux/*.MYI
上面的命令的意思就是檢查所有的.myi檔案,資料庫的目錄在/opt/mysql/var/linux/目錄中
如果有問題,應該用-r引數來修復
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk -r /opt/mysql/var/linux/*.MYI
7]mysqlshow 命令:顯示使用者選擇的資料庫和表
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p [資料庫名]
比如我要檢視名為linux的資料庫;應該是:
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p linux