什麼系統?兩個庫是不是在同一台機?
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來操作了,界面操作沒什麼說的。
Ⅱ MySQL如何復製表中的一條記錄並插入
1、打開navicat軟體,打開要復製表的資料庫,如下圖所示:
Ⅲ 如何對MySQL數據表進行復制,表結構復制
1、復製表結構(語法
creata
table
舊表
select
*
from
新表)
create
table
t1(
id
int
unsigned
auto_increment
primary
key,
name
varchar(32)
not
null
default
'',
pass
int
not
null
default
0
);
desc
查看錶結構
創建表
t2
同時復製表
t1
表結構
create
table
t2
select
*
from
t1;
desc
t2
查看錶結構
注意:兩張的表欄位結構一樣,但是
主鍵
primary
key
和
自增
auto_increment
沒有了,所以這種方法不推薦大家使用,那如何才能創建出兩張完全一樣的表呢,辦法肯定有的,如下面語句。
create
table
t2
like
t1;
這就可以創建一張
t2
和
t1
完全一樣的表了。
2、指定欄位復製表結構
語法:
create
table
新表
select
欄位1,欄位2
…
from
舊表
3、復製表中數據
假設要把表
t1
中的數據全部復制到表
t2中
insert
into
t2
select
*from
t1;
如果只想復制某個欄位
insert
into
t2(欄位1,欄位2)
select
欄位1,欄位2from
t1;
Ⅳ 求MySQL復製表數據的sql語句
insert
into
table
b
(xxx)
select
'name'
from
table
a
----插入a表數據進b表
select
*
from
table
b
order
by
id
----查看插入後b表的數據
(註:前提是b表的id欄位不能為null
啟用標識
遞增量為
1)
Ⅳ 如何將mysql中的一個表復制到sqlserver中
1:MSSQLServer資料庫導入到MySql資料庫
步驟:
1.安裝mysql資料庫的ODBC驅動,mysql-connector-odbc-3.51.23-win32.msi,下載並安裝。
2.在Mysql中創建資料庫實例。
3.打開控制面板 --> 管理工具 --> 數據源ODBC,在用戶DSN中添加一個MySQL ODBC 3.51數據源。
4.在登錄login選項卡中輸入數據源名稱Data Source Name,此處輸入MysqlDNS(也可以自己隨便命名,只要在後面導入數據的時候選擇正確的數據源名字就行);然後輸入伺服器Server,用戶User,密碼Password,輸入正確後選擇要導入的資料庫,Database選擇你需要導入的資料庫。在連接選項connect options中根據需要設置MySql使用的埠port和字元集Character Set。
註:字元集一定要和Mysql伺服器相對應,如果Mysql使用了gbk字元集,則一定要設置字元集為gbk,否則導入到Sql Server可能會出現問號亂碼。
5.打開sql server企業管理器,選擇該資料庫,單擊右鍵選擇所有任務 --> 導出數據。
6.『選擇數據源』為默認,『選擇目的』為剛剛安裝的mySQL數據源,用戶/系統DSN為MysqlDNS。在『指定表復制或查詢』中選擇『從源資料庫復製表和視圖』,在『選擇源表和視圖』里,選擇需要導入的表,即可將數據從MSSQLServer資料庫導入到MySql資料庫中。
2:MySql資料庫導入到MSSQL資料庫中
1.安裝mysql資料庫的ODBC驅動,mysql-connector-odbc-3.51.19-win32.msi
2.打開控制面板\管理工具\數據源ODBC,在用戶DSN中添加一個MySQL ODBC 3.51數據源。
3.在登錄login選項卡中輸入數據源名稱Data Source Name,此處輸入MysqlDNS;然後輸入伺服器,用戶User,密碼Password,輸入正確後選擇要導入的資料庫。在連接選項connect options中根據需要設置MySql使用的埠port和字元集Character Set。
註:字元集一定要和Mysql伺服器相對應,如果Mysql使用了gbk字元集,則一定要設置字元集為gbk,否則導入到Sql 可能會出現問號亂碼。
4.打開sql server企業管理器,新建一資料庫MySql。選擇該資料庫,單擊右鍵選擇所有任務\導入數據。
5.選擇數據源為其它(ODBC數據源),用戶/系統DSN為MysqlDNS。其餘根據向導進行,即可將數據從MySql資料庫導入到MSSQL資料庫中
Ⅵ mysql資料庫如何將相同資料庫中的一個表的數據復制到另一個表中
你建表復制就可以了,例如CREATE TABLE aa AS SELECT * FROM tree;這是完全復制tree表的數據及表結構到aa表中。假如要復制某些欄位的話,如:insert into 表名user(表中欄位sal) select sal from emp;插入某一列sal到user表中,從emp表中獲取sal的數據信息。最後提醒下,Oracle和MySql復製表建表 一樣,可以自己建表結構,再復制數據;也可以復制部分列和部分數據,分開操作。 但要保證數據類型一致,插入指定列數,列數要相同,列的長度空間大就可以了。
Ⅶ 在MySQL中如何復製表
這個確實簡單
mysql支持這種復制
語法:
insert
into
`tb`(`field1`,`field2`..)
select
`field1`,`field2`..
from
`tb`;
注意修改為你自己的表名和欄位名
兩個欄位列表(`field1`,`field2`..)數量要相同
你要全欄位復制,就把除了自增欄位之外的所有欄位都列出來
Ⅷ 如何將mysql的一個完整資料庫全部復制到另外一個資料庫
如果從庫上表 t 數據與主庫不一致,導致復制錯誤,整個庫的數據量很大,重做從庫很慢,如何單獨恢復這張表的數據?通常認為是不能修復單表數據的,因為涉及到各表狀態不一致的問題。下面就列舉備份單表恢復到從庫會面臨的問題以及解決辦法:
場景 1
如果復制報錯後,沒有使用跳過錯誤、復制過濾等方法修復主從復制。主庫數據一直在更新,從庫數據停滯在報錯狀態(假設 GTID 為 aaaa:1-100)。
修復步驟:
在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000);
恢復到從庫;
啟動復制。
- CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');
- START SLAVE UNTIL SQL_AFTER_GTIDS = 'aaaa:10000';
在主庫上備份表 t (假設備份快照 GTID為 aaaa:1-10000);
停止從庫復制,GTID為 aaaa:1-20000;
恢復表 t 到從庫;
啟動復制。
對表 t 加讀鎖;
在主庫上備份表 t;
停止從庫復制,恢復表 t;
啟動復制;
解鎖表 t。
這里的問題是復制起始位點是 aaaa:101,從庫上表 t 的數據狀態是領先其他表的。aaaa:101-10000 這些事務中只要有修改表 t 數據的事務,就會導致復制報錯 ,比如主鍵沖突、記錄不存在(而 aaaa:101 這個之前復制報錯的事務必定是修改表 t 的事務)
解決辦法:啟動復制時跳過 aaaa:101-10000 這些事務中修改表 t 的事務。
正確的修復步驟:
1. 在主庫上備份表 t (假設備份快照 GTID 為 aaaa:1-10000),恢復到從庫;
2. 設置復制過濾,過濾表 t:
3. 啟動復制,回放到 aaaa:10000 時停止復制(此時從庫上所有表的數據都在同一狀態,是一致的);
4. 刪除復制過濾,正常啟動復制。
注意事項:這里要用 mysqlmp --single-transaction --master-data=2,記錄備份快照對應的 GTID
場景 2
如果復制報錯後,使用跳過錯誤、復制過濾等辦法修復了主從復制。主、從庫數據一直在更新。
修復步驟:
這里的問題是復制起始位點是 aaaa:20001,aaaa:10000-20000 這些事務將不會在從庫上回放,如果這裡面有修改表 t 數據的事務,從庫上將丟失這部分數據。
解決辦法:從備份開始到啟動復制,鎖定表 t,保證 aaaa:10000-20000 中沒有修改表 t 的事務。
正確修復步驟:
如果是大表,這里可以用可傳輸表空間方式備份、恢復表,減少鎖表時間。