Tag: source

MySQL: 限制存取單一資料庫

Posted by – April 16, 2012

從客戶那邊拿到一份巨大的資料庫備份,解壓縮後的 .sql 文字檔接近  1GB。由於檔案很大,想要編輯或檢視內容都很不方便,就想說直接匯進測試用的資料庫。用了 source 指令後成功地匯入了,當下看起來也很正常。不過後來只要重開測試主機就會出現完全連不上資料庫的情況,而且屢試不爽,推測大概是客戶連同紀錄資料庫自身狀態的 information_schema 也一併匯出了。

問了客戶的工程師才知道他們匯入時會加指令來限制匯到哪個資料庫。語法如下:

mysql -u USERNAME -p PASSWORD --force --one-database DATABASE

登入 mysql 後再使用 source 匯入,此時若是碰到操作非指定 DB 的 statements 都會被自動略過。

總算順利搞定資料庫,繼續開發工作。又學到了一課。

後來去翻閱 MySQL 官方文件,其實只要加個 -o 就可以了,參考這篇

MySQL: Import large file using SOURCE command

Posted by – March 26, 2012

在 MySQL 匯入 sql 資料大都時候都是用 phpMyAdmin 這個軟體來代勞,不過有時候碰到非常巨大的 sql 檔案,動輒數百 MB,甚至更大時就超過了 phpMyAdmin 處理能力。

這時候比較方便的做法是用命令列來匯入,指令是 SOURCE

mysql> use exampledb;
Database changed

mysql> source C:\data.sql;

等待 MySQL 執行完畢就完工了,無痛匯入巨量的 sql 資料。