mysql資料庫如何拷貝
1. 如何將mysql的一個完整資料庫全部復制到另外一個資料庫
mysql有個目錄叫data,裡面有與每個資料庫名一樣的目錄,目錄里存的就是數據文件,復制即可
2. 現在我在學習MySQL,問問怎麼復制粘貼資料庫
兩種方法:
1、在「SQL Server 配置管理器」中將你的SQL SERVER服務停止,然後將你安裝資料庫文件中的data文件夾下的 你的資料庫名.mdf和你的資料庫名.ldf文件夾拷給別人,最後拿到該文件的人,直接在mssql2005的「SQL Server Management Studio」工具中,用附加資料庫的方式添加即可。
2、在你電腦上的「SQL Server Management Studio」工具中找到你要用來傳的資料庫名,在上面點右鍵--任務--備份資料庫。為其指定一個目錄後,點保存。之後會生成一個文件,你直接將該文件拷貝給你要給的人。拿到這個備份文件的人,首先要在他電腦的「SQL Server Management Studio」工具中新建一個空資料庫,且該資料庫名要和你電腦上的那個名稱一致,最後在這個資料庫名上點右鍵--任務--還原--資料庫,選中剛才的那個備份文件,點確定也可以還原。
3. 怎麼復制MySQL資料庫
項目上 MySQL還原 SQL 備份經常會碰到一個錯誤如下,且通常出現在導入視圖、函數、存儲過程、事件等對象時,其根本原因就是因為導入時所用賬號並不具有SUPER 許可權,所以無法創建其他賬號的所屬對象。ERROR 1227 (42000) : Access denied; you need (at least one of) the SUPER privilege(s) for this operation常見場景:1. 還原 RDS 時經常出現,因為 RDS 不提供 SUPER 許可權;2. 由開發庫還原到項目現場,賬號許可權等有所不同。
處理方式:
1. 在原庫中批量修改對象所有者為導入賬號或修改SQL SECURITY為Invoker;2. 使用 mysqlmp 導出備份,然後將 SQL 文件中的對象所有者替換為導入賬號。
二、問題原因我們先來看下為啥會出現這個報錯,那就得說下 MySQL 中一個很特別的許可權控制機制,像視圖、函數、存儲過程、觸發器等這些數據對象會存在一個DEFINER和一個SQL SECURITY的屬性,如下所示:
--視圖定義CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`%`SQLSECURITYDEFINERVIEWv_test
--函數定義CREATEDEFINER=`root`@`%`FUNCTION`f_test()`RETURNSvarchar(100)SQLSECURITYDEFINER
--存儲過程定義CREATEDEFINER=`root`@`%`PROCEDURE`p_test`()SQLSECURITYDEFINER
--觸發器定義CREATE DEFINER=`root`@`%` trigger t_test
--事件定義CREATE DEFINER=`root`@`%` EVENT `e_test`
DEFINER:對象定義者,在創建對象時可以手動指定用戶,不指定的話默認為當前連接用戶;
SQL SECURITY:指明以誰的許可權來執行該對象,有兩個選項,一個為DEFINER,一個為INVOKER,默認情況下系統指定為 DEFINER;DEFINER:表示按定義者的許可權來執行;INVOKER:表示按調用者的許可權來執行。
如果導入賬號具有 SUPER 許可權,即使對象的所有者賬號不存在,也可以導入成功,但是在查詢對象時,如果對象的SQL SECURITY為DEFINER,則會報賬號不存在的報錯。ERROR 1449 (HY000): The user specified as a definer ('root'@'%') does not exist
改寫好處:1. 可以避免還原時遇到 DEFINER 報錯相關問題;2. 根據輸出信息知道備份是否正常進行,防止備份中遇到元數據鎖無法獲取然後一直卡住的情況。

4. 如何將mysql的一個完整資料庫全部復制到另外一個資料庫
資料庫實際就是很多表的集合
所以復制庫就是復製表
將表導出到
sql
文件
然後再導入