mysql 导入导出.sql文件
備份數據庫(包含全部表和全部存儲過程):
C:\Documents and Settings\Administrator>mysqldump -h localhost -u root -p -R bannei >d:/
log/mydb.sql
Enter password: ******
//備份數據庫所有表
C:\Documents and Settings\Administrator>mysqldump -h localhost -u root -p jxhxt >d:/log/bn2010-01-29.sql
Enter password: ******
//備份數據庫中指定表數據,多個表之間用空格分開
C:\Documents and Settings\Administrator>mysqldump -h localhost -u root -p jxhxt invite_mail auth_user >d:/log/bn2010-01-29.sql
Enter password: ******
//備份全部存儲過程
C:\Documents and Settings\Administrator>mysqldump -h localhost -u root -p -t -d -R bannei >d:/log/myproc.sql
Enter password: ******
//導出一個數據庫結構
C:\Documents and Settings\Administrator>mysqldump -u root -p -d --add-drop-table ruyi_db>d:\ruyi_db.sql
//導入數據文件
C:\Documents and Settings\Administrator>mysql -h localhost -u root -p bannei <d:/log/mydb.sql
Enter password: ******
導入數據庫,常用source 命令
進入mysql數據庫控制臺,如mysql -u root -p
mysql>use 數據庫
然后使用source命令,后面參數為腳本文件(如這里用到的.sql)
mysql>source d:\ruyi_db.sql
?
?
1、mysqldump1.1 備份
mysqldump?是采用SQL級別的備份機制,它將數據表導成 SQL 腳本文件,在不同的 MySQL 版本之間升級時相對比較合適,這也是最常用的備份方法。
現在來講一下?mysqldump?的一些主要參數:
-
--compatible=name
它告訴 mysqldump,導出的數據將和哪種數據庫或哪個舊版本的 MySQL 服務器相兼容。值可以為?ansi、 mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、 no_tables_options、no_field_options?等,要使用幾個值,用逗號將它們隔開。當然了,它并不保證能完全兼容,而是盡量兼容。
-
--complete-insert,-c
導出的數據采用包含字段名的完整?INSERT?方式,也就是把所有的值都寫在一行。這么做能提高插入效率,但是可能會受到?max_allowed_packet?參數的影響而導致插入失敗。因此,需要謹慎使用該參數,至少我不推薦。
-
--default-character-set=charset
指定導出數據時采用何種字符集,如果數據表不是采用默認的?latin1?字符集的話,那么導出時必須指定該選項,否則再次導入數據后將產生亂碼問題。
-
--disable-keys
告訴?mysqldump?在?INSERT?語句的開頭和結尾增加?/*!40000 ALTER TABLE table DISABLE KEYS */;和?/*!40000 ALTER TABLE table ENABLE KEYS */;?語句,這能大大提高插入語句的速度,因為它是在插入完所有數據后才重建索引的。該選項只適合?MyISAM?表。
-
--extended-insert = true|false
默認情況下,mysqldump?開啟?--complete-insert?模式,因此不想用它的的話,就使用本選項,設定它的值為?false?即可。
-
--hex-blob
使用十六進制格式導出二進制字符串字段。如果有二進制數據就必須使用本選項。影響到的字段類型有?BINARY、VARBINARY、 BLOB。
-
--lock-all-tables,-x
在開始導出之前,提交請求鎖定所有數據庫中的所有表,以保證數據的一致性。這是一個全局讀鎖,并且自動關閉--single-transaction?和?--lock-tables?選項。
-
--lock-tables
它和?--lock-all-tables?類似,不過是鎖定當前導出的數據表,而不是一下子鎖定全部庫下的表。本選項只適用于?MyISAM?表,如果是?Innodb?表可以用?--single-transaction?選項。
-
--no-create-info,-t
只導出數據,而不添加?CREATE TABLE?語句。
-
--no-data,-d
不導出任何數據,只導出數據庫表結構。
-
--opt
這只是一個快捷選項,等同于同時添加?--add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset?選項。本選項能讓?mysqldump?很快的導出數據,并且導出的數據能很快導回。該選項默認開啟,但可以用?--skip-opt?禁用。注意,如果運行?mysqldump?沒有指定?--quick?或?--opt?選項,則會將整個結果集放在內存中。如果導出大數據庫的話可能會出現問題。
-
--quick,-q
該選項在導出大表時很有用,它強制?mysqldump?從服務器查詢取得記錄直接輸出而不是取得所有記錄后將它們緩存到內存中。
-
--routines,-R
導出存儲過程以及自定義函數。
-
--single-transaction
該選項在導出數據之前提交一個?BEGIN?SQL語句,BEGIN?不會阻塞任何應用程序且能保證導出時數據庫的一致性狀態。它只適用于事務表,例如?InnoDB?和?BDB。
本選項和?--lock-tables?選項是互斥的,因為?LOCK TABLES?會使任何掛起的事務隱含提交。
要想導出大表的話,應結合使用?--quick?選項。 -
--triggers
同時導出觸發器。該選項默認啟用,用?--skip-triggers?禁用它。
其他參數詳情請參考手冊,我通常使用以下 SQL 來備份?MyISAM?表:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr \--default-character-set=utf8 --opt --extended-insert=false \--triggers -R --hex-blob -x db_name > db_name.sql
使用以下 SQL 來備份?Innodb?表:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr \--default-character-set=utf8 --opt --extended-insert=false \--triggers -R --hex-blob --single-transaction db_name > db_name.sql
另外,如果想要實現在線備份,還可以使用?--master-data?參數來實現,如下:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr \--default-character-set=utf8 --opt --master-data=1 \--single-transaction --flush-logs db_name > db_name.sql
它只是在一開始的瞬間請求鎖表,然后就刷新binlog了,而后在導出的文件中加入CHANGE MASTER?語句來指定當前備份的binlog位置,如果要把這個文件恢復到slave里去,就可以采用這種方法來做。
1.2 還原
用?mysqldump?備份出來的文件是一個可以直接倒入的 SQL 腳本,有兩種方法可以將數據導入。
-
直接用?mysql?客戶端
例如:
/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql
-
用 SOURCE 語法
其實這不是標準的 SQL 語法,而是?mysql?客戶端提供的功能,例如:
SOURCE /tmp/db_name.sql;
這里需要指定文件的絕對路徑,并且必須是?mysqld?運行用戶(例如 nobody)有權限讀取的文件。
文章來源:http://imysql.cn/?q=node/128
?
一.MYSQL的命令行模式的設置:
桌面->我的電腦->屬性->環境變量->新建->
PATH=“;path\mysql\bin;”其中path為MYSQL的安裝路徑。
二.簡單的介紹一下命令行進入MYSQL的方法:
1.C:\>mysql -h hostname -u username -p
按ENTER鍵,等待然后輸入密碼。這里hostname為服務器的名稱,如localhost,username為MYSQL的用戶名,如root。
進入命令行后可以直接操作MYSQL了。
2.簡單介紹一下MYSQL命令:
?? ?mysql->CREATE DATABASE dbname;//創建數據庫
?? ?mysql->CREATE TABLE tablename;//創建表
?? ?mysql->SHOW DATABASES;//顯示數據庫信息,有那些可用的數據庫。
mysql->USE dbname;//選擇數據庫
?? ?mysql->SHOW TABLES;//顯示表信息,有那些可用的表
?? ?mysql->DESCRIBE tablename;//顯示創建的表的信息
三.從數據庫導出數據庫文件:
1.將數據庫mydb導出到e:\mysql\mydb.sql文件中:
打開開始->運行->輸入cmd??? ?進入命令行模式
c:\>mysqldump -h localhost -u root -p mydb >e:\mysql\mydb.sql
然后輸入密碼,等待一會導出就成功了,可以到目標文件中檢查是否成功。
2.將數據庫mydb中的mytable導出到e:\mysql\mytable.sql文件中:
c:\>mysqldump -h localhost -u root -p mydb mytable>e:\mysql\mytable.sql
C:\Documents and Settings\XuWei>mysql -h localhost -u root -p bannei < D:\temp\b
annei2010-06-06-23-59\bannei2010-06-06-23-59.sql
Enter password: ******
3.將數據庫mydb的結構導出到e:\mysql\mydb_stru.sql文件中:
c:\>mysqldump -h localhost -u root -p mydb --add-drop-table >e:\mysql\mydb_stru.sql
四.從外部文件導入數據到數據庫中:
從e:\mysql\mydb2.sql中將文件中的SQL語句導入數據庫中:
1.從命令行進入mysql,然后用命令CREATE DATABASE mydb2;創建數據庫mydb2。
2.退出mysql 可以輸入命令exit;或者quit;
3.在CMD中輸入下列命令:
c:\>mysql -h localhost -u root -p mydb2 < e:\mysql\mydb2.sql
然后輸入密碼,就OK了。
五.下面談一下關于導入文件大小限制問題的解決:
默認情況下:mysql 對導入文件大小有限制的,最大為2M,所以當文件很大時候,直接無法導入,下面就這個問題的解決列舉如下:
1.在php.ini中修改相關參數:
影響mysql導入文件大小的參數有三個:
??? ?memory_limit=128M,upload_max_filesize=2M,post_max_size=8M
修改upload_max_filesize=200 M 這里修改滿足你需要的大小,
可以同時修改其他兩項memory_limit=250M post_max_size=200M
這樣就可以導入200M以下的.sql文件了。
?
今天在本機器上備份測試服務器數據遇到1449錯誤,特記錄解決方案
C:\Users\Administrator>mysqldump -h 192.168.0.113 -uroot -p123456 -R tbkt >d:/backups/tbkt20130928.sql
mysqldump: Got error: 1449: The user specified as a definer ('bannei'@'%') doesnot exist when using LOCK TABLES
mysqldump -h192.168.0.113 -uroot -p123456 --opt --extended-insert=true --single-transaction -R --flush-logs --database tbkt > /home/tbkt.sql
放狗搜,有說這有說那,后來使用CRT登陸到測試服務器后使用一下語句成功備份
mysqldump -h192.168.0.113 -uroot -p --opt --extended-insert=true --single-transaction -R --flush-logs --database tbkt > /home/tbkt2.sql
?
?
文章來源:http://www.cnblogs.com/cnkenny/archive/2009/04/22/1441297.html
?
轉載于:https://www.cnblogs.com/weiok/p/4920149.html
總結
以上是生活随笔為你收集整理的mysql 导入导出.sql文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse Java注释模板设置
- 下一篇: Linux命令行上执行操作,不退回命令行