1、打開navicat軟件,打開要復制表的數(shù)據(jù)庫,如下圖所示:
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、網(wǎng)站建設(shè)與策劃設(shè)計,海城網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:海城等地區(qū)。海城做網(wǎng)站價格咨詢:18980820575
2、點擊上方的“工具-數(shù)據(jù)傳輸”,如下圖所示:
3、進去之后,左邊選擇的是要復制的表的數(shù)據(jù)庫,右邊選擇的將表復制到目標數(shù)據(jù)庫,如下圖所示:
4、打開左邊數(shù)據(jù)庫對象中的“表”,選擇要復制哪幾張表,點擊開始。
5、點擊開始,會彈出一個框,點擊是,等待一下,出現(xiàn)如下界面,復制成功,點擊“關(guān)閉”。
6、可以看到表已經(jīng)復制到另外一個數(shù)據(jù)庫上了,如下圖所示:
1:MSSQLServer數(shù)據(jù)庫導入到MySql數(shù)據(jù)庫
步驟:
1.安裝mysql數(shù)據(jù)庫的ODBC驅(qū)動,mysql-connector-odbc-3.51.23-win32.msi,下載并安裝。
2.在Mysql中創(chuàng)建數(shù)據(jù)庫實例。
3.打開控制面板 -- 管理工具 -- 數(shù)據(jù)源ODBC,在用戶DSN中添加一個MySQL ODBC 3.51數(shù)據(jù)源。
4.在登錄login選項卡中輸入數(shù)據(jù)源名稱Data Source Name,此處輸入MysqlDNS(也可以自己隨便命名,只要在后面導入數(shù)據(jù)的時候選擇正確的數(shù)據(jù)源名字就行);然后輸入服務器Server,用戶User,密碼Password,輸入正確后選擇要導入的數(shù)據(jù)庫,Database選擇你需要導入的數(shù)據(jù)庫。在連接選項connect options中根據(jù)需要設(shè)置MySql使用的端口port和字符集Character Set。
注:字符集一定要和Mysql服務器相對應,如果Mysql使用了gbk字符集,則一定要設(shè)置字符集為gbk,否則導入到Sql Server可能會出現(xiàn)問號亂碼。
5.打開sql server企業(yè)管理器,選擇該數(shù)據(jù)庫,單擊右鍵選擇所有任務 -- 導出數(shù)據(jù)。
6.‘選擇數(shù)據(jù)源’為默認,‘選擇目的’為剛剛安裝的mySQL數(shù)據(jù)源,用戶/系統(tǒng)DSN為MysqlDNS。在‘指定表復制或查詢’中選擇‘從源數(shù)據(jù)庫復制表和視圖’,在‘選擇源表和視圖’里,選擇需要導入的表,即可將數(shù)據(jù)從MSSQLServer數(shù)據(jù)庫導入到MySql數(shù)據(jù)庫中。
2:MySql數(shù)據(jù)庫導入到MSSQL數(shù)據(jù)庫中
1.安裝mysql數(shù)據(jù)庫的ODBC驅(qū)動,mysql-connector-odbc-3.51.19-win32.msi
2.打開控制面板\管理工具\數(shù)據(jù)源ODBC,在用戶DSN中添加一個MySQL ODBC 3.51數(shù)據(jù)源。
3.在登錄login選項卡中輸入數(shù)據(jù)源名稱Data Source Name,此處輸入MysqlDNS;然后輸入服務器,用戶User,密碼Password,輸入正確后選擇要導入的數(shù)據(jù)庫。在連接選項connect options中根據(jù)需要設(shè)置MySql使用的端口port和字符集Character Set。
注:字符集一定要和Mysql服務器相對應,如果Mysql使用了gbk字符集,則一定要設(shè)置字符集為gbk,否則導入到Sql 可能會出現(xiàn)問號亂碼。
4.打開sql server企業(yè)管理器,新建一數(shù)據(jù)庫MySql。選擇該數(shù)據(jù)庫,單擊右鍵選擇所有任務\導入數(shù)據(jù)。
5.選擇數(shù)據(jù)源為其它(ODBC數(shù)據(jù)源),用戶/系統(tǒng)DSN為MysqlDNS。其余根據(jù)向?qū)нM行,即可將數(shù)據(jù)從MySql數(shù)據(jù)庫導入到MSSQL數(shù)據(jù)庫中
MySQL 8.0.17 clone 插件的安裝和驗證過程
安裝非常簡單,與安裝其他插件的工作方式相同。下面是安裝克隆插件的命令行:
master [localhost:45008] ((none)) INSTALL PLUGIN clone SONAME 'mysql_clone.so';Query OK, 0 rows affected (0.00 sec)
以及如何檢查克隆插件是否處于活動狀態(tài):master [localhost:45008] ((none)) SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINSWHERE PLUGIN_NAME LIKE 'clone';+-------------+---------------+| PLUGIN_NAME | PLUGIN_STATUS |+-------------+---------------+| clone | ACTIVE |+-------------+---------------+1 row in set (0.00 sec)
請注意,這些步驟需要在 Donor(供體)和 Recipient(受體,也成為 Slave)上都執(zhí)行。執(zhí)行安裝后,插件將在重新啟動后自動加載,因此您不必再擔心這一點。接下來,我們將在 Donor 上創(chuàng)建具有必要權(quán)限的用戶,這樣我們就可以遠程連接到實例來克隆它。
master [localhost:45008] ((none)) create user clone_user@'%' identified by 'sekret';
Query OK, 0 rows affected (0.01 sec)
master [localhost:45008] ((none)) GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'%';
Query OK, 0 rows affected (0.00 sec)
作為安全措施,我建議將百分號 % 替換為從機的 IP、主機名或網(wǎng)絡掩碼,以便只有未來的從服務器才能接受連接?,F(xiàn)在,從服務器上,克隆用戶需要CLONE_ADMIN 權(quán)限來替換從機數(shù)據(jù),在克隆操作期間阻止 DDL 并自動重新啟動服務器。
slave1 [localhost:45009] ((none)) create user clone_user@'localhost' identified by 'sekret';
Query OK, 0 rows affected (0.01 sec)
slave1 [localhost:45009] ((none)) GRANT CLONE_ADMIN ON *.* TO 'clone_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)
接下來,安裝并驗證插件,并在主和從服務器上創(chuàng)建用戶。
克隆過程
如上所述,克隆過程可以在本地或遠程執(zhí)行。此外,它支持復制,這意味著克隆操作從捐贈者提取和傳輸復制坐標并將其應用于收件人。它可用于 GTID 或非 GTID 復制。因此,要開始克隆過程,首先,讓我們確保有一個有效的供體(Master)。這由 clone_valid_donor_list 參數(shù)控制。由于它是動態(tài)參數(shù),您可以在服務器運行時進行更改。使用 show variables 命令將顯示參數(shù)是否具有有效的供體(Master):slave1 [localhost:45009] ((none)) SHOW VARIABLES LIKE 'clone_valid_donor_list';+------------------------+-------+| Variable_name | Value |+------------------------+-------+| clone_valid_donor_list | |+------------------------+-------+1 row in set (0.01 sec)
例子中,我們需要對它進行設(shè)置:slave1 [localhost:45009] ((none)) set global clone_valid_donor_list = '127.0.0.1:45008';Query OK, 0 rows affected (0.00 sec)
下一步不是強制性的,但使用默認的 log_error_verbosity,錯誤日志不會顯示有關(guān)克隆進度的大量信息。所以,對于這個例子,我會將詳細程度調(diào)整到更高的級別(在供體和受體機上):mysql set global log_error_verbosity=3;Query OK, 0 rows affected (0.00 sec)
現(xiàn)在,讓我們在受體(Slave)上開始克隆過程:slave1 [localhost:45009] ((none)) CLONE INSTANCE FROM clone_user@127.0.0.1:45008 identified by 'sekret';Query OK, 0 rows affected (38.58 sec)
在Mysql程序中有我自己的一個數(shù)據(jù)庫共5張表,里邊數(shù)據(jù)不算太多。我現(xiàn)在想把他們?nèi)颗搅硪慌_電腦中去,該怎么弄,如果不用其它的軟件工具,只用Mysql自已的程序不知可否?
注:不用考慮操作系統(tǒng)。
---------------------------------------------------------------
在dos命令提示符下使用mysqldump命令進行備份.
如下:
C:\Documents and Settings\Administratormysqldump yinshi c:\\backup.txt -uroot
-p12142022
說明:yinshi是我的數(shù)據(jù)庫名,里面有5張表; c:\\backup.txt 是我備份出來文件名和路徑;
-u,-p參數(shù)后面跟的分別是用戶名和密碼.
將你備份出來的文件我這里是backup.txt拷貝到另一臺機上,再在dos命令提示符下用mysql命令,進行恢復,如下:
C:\Documents and Settings\Administratormysql c:\\backup.txt -uroot -p12142022
or
mysqlsource backup.txt;(這里backup.txt在放在data目錄下)
---------------------------------------------------------------
如果另一臺機器上也安裝了mysql,可以直接導入
C:\mysql\binmysqldump -h172.20.6.250 -udeveloper -p123456 --opt server_databasename | mysql -hlocalhost -uroot -C obj_databasename
172.20.6.250源服務器ip
developer源服務器連接用戶名
---------------------------------------------------------------
有兩種辦法。
1、在B機器上裝mysql。
將A機器上的mysql/data下的你的數(shù)據(jù)庫目錄整個拷貝下來。
將B機器上的mysql服務停止。
找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然后啟動mysql服務就可以了。
2、使用SQL語句備份和恢復
你可以使用SELECT INTO OUTFILE語句備份數(shù)據(jù),并用LOAD DATA INFILE語句恢復數(shù)據(jù)。這種方法只能導出數(shù)據(jù)的內(nèi)容,不包括表的結(jié)構(gòu),如果表的結(jié)構(gòu)文件損壞,你必須要先恢復原來的表的結(jié)構(gòu)。
語法:
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’
這種架構(gòu)一般用在以下三類場景
1. 備份多臺 Server 的數(shù)據(jù)到一臺如果按照數(shù)據(jù)切分方向來講,那就是垂直切分。比如圖 2,業(yè)務 A、B、C、D 是之前拆分好的業(yè)務,現(xiàn)在需要把這些拆分好的業(yè)務匯總起來備份,那這種需求也很適用于多源復制架構(gòu)。實現(xiàn)方法我大概描述下:業(yè)務 A、B、C、D 分別位于 4 臺 Server,每臺 Server 分別有一個數(shù)據(jù)庫來隔離前端的業(yè)務數(shù)據(jù),那這樣,在從庫就能把四臺業(yè)務的數(shù)據(jù)全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現(xiàn)這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關(guān)聯(lián)的問題,不但性能急劇下降,管理多個實例也沒有單臺來的容易。
2. 用來聚合前端多個 Server 的分片數(shù)據(jù)。
同樣,按照數(shù)據(jù)切分方向來講,屬于水平切分。比如圖 3,按照年份拆分好的數(shù)據(jù),要做一個匯總數(shù)據(jù)展現(xiàn),那這種架構(gòu)也非常合適。實現(xiàn)方法稍微復雜些:比如所有 Server 共享同一數(shù)據(jù)庫和表,一般為了開發(fā)極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。
3. 匯總并合并多個 Server 的數(shù)據(jù)
第三類和第一種場景類似。不一樣的是不僅僅是數(shù)據(jù)需要匯總到目標端,還得合并這些數(shù)據(jù),這就比第一種來的相對復雜些。比如圖 4,那這樣的需求,是不是也適合多源復制呢?答案是 YES。那具體怎么做呢?