復制mysql資料庫
A. mysql整個數據完全備份。 可不可以把mysql的 data目錄下的數據文件復制出來等於備份
備份方法,如下參考:
1.首先打開mysql資料庫軟體,進入軟體主界面,如下圖。
B. mysql 資料庫復制到其他電腦
1
直接復制mysql目錄下的data文件夾,放到其他電腦配喊的相應目錄下
2
或者培旦野將裡面的數據全部導成sql語句,到其他電腦的mysql里遲渣面執行,這里用到phpmyadmin是很方便的
C. mysql資料庫可以直接復制嗎
mysql資料庫可以直接復制嗎
MySQL資料庫的導入,有兩種方法:
1) 先導出資料庫SQL腳本,再導入;
2) 直接拷貝資料庫目錄和文件。
在不同操作系統或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發生。
所以一般推薦用SQL腳本形式導入。下面分別介紹兩種方法。
D. 如何復制mysql資料庫到另一台電腦上
這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源復制架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。
E. 如何將mysql的一個完整資料庫全部復制到另外一個資料庫
資料庫實際就是很多表的集合
所以復制庫就是復製表
將表導出到
sql
文件
然後再導入
F. MYSQL數據怎麼從一個電腦轉移到另一個電腦
1、找到my.ini文件,裡面有一行datadir=...的,就是資料庫文件目錄,關掉mysql服伏羨務,將這個目錄整個拷貝過去在那邊再配my.ini讓目錄吻合就行了。
2、把資料庫上的資料備份出來,到另外一個資料庫還原,有工具PHPMYADMIN;
也可以命令行導出,利用「mysqlmp -u 用戶名 -p databasename >exportfilename」導出資料庫到文件,導入:
進入MySQL Command Line Client,輸入密碼,進入到「mysql>」,輸入命令"show databases;",回車,看看有些什麼資料庫;建立你要還原的資料庫,輸入"create database voice;",回車;切換到剛建立的資料庫皮鏈,輸入燃廳孫"use voice;",回車;
導入數據,輸入"source voice.sql;
"回車,開始導入,再次出現"mysql>"並且沒有提示錯誤即還原成功。
G. 怎麼快速復制千萬級的Mysql資料庫表
我google了一下大概有一下幾個方法,
1.復製表結構及數據到新表
CREATE TABLE 新表 SELECT * FROM 舊表
2.只復製表結構到新表
CREATE TABLE 新表 SELECT * FROM 舊表 WHERE 1=2
即:讓WHERE條件不成立.
3.復制舊表的數據到新表(假設兩個表結構一樣)
INSERT INTO 新表 SELECT * FROM 舊表
4.復制舊表的數據到新表(假設兩個表結構不一樣)
INSERT INTO 新表(欄位1,欄位2,.......) SELECT 欄位1,欄位2,...... FROM 舊表
H. mysql把一個資料庫中的數據復制到另一個資料庫中的表 2個表結構相同
1、使用軟體Navicat就可遷移復制資料庫,打開Navicat,右鍵點擊左邊空白的地方,點擊New Connection下的MySQL,創建一個伺服器的連接,下面將演示把本地的數據遷移到伺服器:
I. 怎麼才能完整復制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
J. 怎麼復制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. 根據輸出信息知道備份是否正常進行,防止備份中遇到元數據鎖無法獲取然後一直卡住的情況。
