當前位置:首頁 » 操作系統 » mysql復制一個資料庫

mysql復制一個資料庫

發布時間: 2022-05-14 11:47:44

A. 如何將mysql的一個完整資料庫全部復制到另外一個資料庫

mysql有個目錄叫data,裡面有與每個資料庫名一樣的目錄,目錄里存的就是數據文件,復制即可

B. 現在我在學習MySQL,問問怎麼復制粘貼資料庫

兩種方法:
1、在「SQL Server 配置管理器」中將你的SQL SERVER服務停止,然後將你安裝資料庫文件中的data文件夾下的 你的資料庫名.mdf和你的資料庫名.ldf文件夾拷給別人,最後拿到該文件的人,直接在mssql2005的「SQL Server Management Studio」工具中,用附加資料庫的方式添加即可。
2、在你電腦上的「SQL Server Management Studio」工具中找到你要用來傳的資料庫名,在上面點右鍵--任務--備份資料庫。為其指定一個目錄後,點保存。之後會生成一個文件,你直接將該文件拷貝給你要給的人。拿到這個備份文件的人,首先要在他電腦的「SQL Server Management Studio」工具中新建一個空資料庫,且該資料庫名要和你電腦上的那個名稱一致,最後在這個資料庫名上點右鍵--任務--還原--資料庫,選中剛才的那個備份文件,點確定也可以還原。

C. mysql資料庫復制問題

如果是InnoDB存儲引擎,復制資料庫似乎沒什麼作用。
如果不是的話,把資料庫復制到另一個5.0版的資料庫,然後把數據導出,再復制回5.5版的資料庫。

D. 如何通過文件拷貝把mysql中的一個資料庫內容,拷貝至另一台機器的mysql里

1、在B機器上裝mysql。
將A機器上的mysql/data下的你的資料庫目錄整個拷貝下來。
將B機器上的mysql服務停止。
找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然後啟動mysql服務就可以了。
2、使用SQL語句備份和恢復
你可以使用SELECT INTO OUTFILE語句備份數據,並用LOAD DATA INFILE語句恢復數據。這種方法只能導出數據的內容,不包括表的結構,如果表的結構文件損壞,你必須要先恢復原來的表的結構。
語法:
SELECT * INTO {OUTFILE | DUMPFILE} 』file_name』 FROM tbl_name
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 』file_name.txt』 [REPLACE | IGNORE]
INTO TABLE tbl_name
SELECT ... INTO OUTFILE 』file_name』

E. 怎麼復制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. 根據輸出信息知道備份是否正常進行,防止備份中遇到元數據鎖無法獲取然後一直卡住的情況。

F. 如何復制mysql資料庫到另一台電腦上

這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源復制架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。

G. mysql怎麼復制一個資料庫中的一張表到另外一個資料庫

什麼系統?兩個庫是不是在同一台機?
linux下個人做法:
1.同一台機
用mysqlmp導出表數據(具體使用可以查一下)
mysqlmp
-h
host
-P
port
-p
password
-u
user
database
--default-character-set=utf8
--add-drop-table
tablename
-r
/tmp/table.sql
再導入數據
mysqlmp
-h
host
-P
port
-p
password
-u
user
database
tablename
</tmp/tablename.sql
或者在進入mysql後用source命令導入。
2.不同的機,就需要先把數據文件導出,然後復制到另外一台機,再進行1的導入操作。
windows下沒試過,一般都直接用phpMyAdmin來操作了,界面操作沒什麼說的。

H. 怎麼才能完整復制MySQL資料庫

有兩種辦法。

1、在B機器上裝mysql。
將A機器上的mysql/data下的你的資料庫目錄整個拷貝下來。
將B機器上的mysql服務停止。
找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然後啟動mysql服務就可以了。
2、使用SQL語句備份和恢復
你可以使用SELECT INTO OUTFILE語句備份數據,並用LOAD DATA INFILE語句恢復數據。這種方法只能導出數據的內容,不包括表的結構,如果表的結構文件損壞,你必須要先恢復原來的表的結構。
語法:
SELECT * INTO {OUTFILE ¦ DUMPFILE} 』file_name』 FROM tbl_name
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 』file_name.txt』 [REPLACE ¦ IGNORE]
INTO TABLE tbl_name
SELECT ... INTO OUTFILE 』file_name』
在dos命令提示符下使用mysqlmp命令進行備份.
如下:
C:\Documents and Settings\Administrator>mysqlmp yinshi >c:\\backup.txt -uroot
-p12142022

I. mysql怎麼把一個資料庫的表復制到另外一個資料庫

什麼系統?兩個庫是不是在同一台機?
linux下個人做法:
1.同一台機
用mysqlmp導出表數據(具體使用可以查一下)
mysqlmp
-h
host
-p
port
-p
password
-u
user
database
--default-character-set=utf8
--add-drop-table
tablename
-r
/tmp/table.sql
再導入數據
mysqlmp
-h
host
-p
port
-p
password
-u
user
database
tablename
</tmp/tablename.sql
或者在進入mysql後用source命令導入。
2.不同的機,就需要先把數據文件導出,然後復制到另外一台機,再進行1的導入操作。
windows下沒試過,一般都直接用phpmyadmin來操作了,界面操作沒什麼說的。

熱點內容
在c語言什麼意思 發布:2022-05-14 14:23:59 瀏覽:806
只有網路情況如何配置yum 發布:2022-05-14 14:23:46 瀏覽:799
unix資料庫 發布:2022-05-14 14:22:32 瀏覽:330
渦輪壓縮原理 發布:2022-05-14 14:19:47 瀏覽:368
密碼被鎖要去哪裡的銀行櫃台 發布:2022-05-14 14:14:33 瀏覽:533
網游抓腳本 發布:2022-05-14 14:12:17 瀏覽:652
疫情出入源碼 發布:2022-05-14 14:12:12 瀏覽:295
尋仙財產密碼是多少 發布:2022-05-14 14:09:50 瀏覽:91
雲空間為什麼占存儲空間 發布:2022-05-14 14:09:30 瀏覽:449
讓子彈飛未剪ftp下載 發布:2022-05-14 14:07:53 瀏覽:591