當前位置:首頁 » 操作系統 » mysql從資料庫同步數據

mysql從資料庫同步數據

發布時間: 2022-03-02 22:48:16

A. mysql怎麼實現主從同步資料庫備份

1.主伺服器:
#Master start
log-bin="d:/log/mysql/mysql_log_bin"
server-id=1
#Master end
2.從伺服器:
#Slave start
log-bin="D:/log/mysql2/log-bin.log"
relay_log="D:/log/mysql2/relay-log-bin"
#從機id,區別於主機id
server-id=2
#主機ip,供從機連接主機用
#master-host=localhost
#主機埠
#master-port=3300
#剛才為從機復制主機數據新建的賬號
#master-user=slave
#剛才為從機復制主機數據新建的密碼
#master-password=654321
#重試間隔時間10秒
#master-connect-retry=10
#需要同步的資料庫
#replicate-do-db=test
#啟用從庫日誌,這樣可以進行鏈式復制
log-slave-updates
#從庫是否只讀,0表示可讀寫,1表示只讀
read-only=1

#只復制某個表
#replicate-do-table=tablename
#只復制某些表(可用匹配符)
#replicate-wild-do-table=tablename%
#只復制某個庫
#replicate-do-db=dbname
#不復制某個表
#replicate-ignore-table=tablename
#不復制某些表
#replicate-wild-ignore-table=tablename%
#不復制某個庫
#replicate-ignore-db=dbname
#Slave end
3.對從伺服器制定主伺服器使用CHANGE MASTER 語句
注意:1.一定要在主伺服器上創建一個可以執行replication的用戶
2.該用戶名在從伺服器上可遠程登錄到主伺服器。
3.開啟MySQL的log-bin日誌功能

B. mysql資料庫的主從同步是數據同步還是結構同步

方法一:忽略錯誤後,繼續同步
該方法適用於主從庫數據相差不大,或者要求數據可以不完全統一的情況,數據要求不嚴格的情況

解決:
stop slave;

#表示跳過一步錯誤,後面的數字可變
set global sql_slave_skip_counter =1;
start slave;

之後再用mysql> show slave status\G 查看:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

ok,現在主從同步狀態正常了。。。

方式二:重新做主從,完全同步
該方法適用於主從庫數據相差較大,或者要求數據完全統一的情況

解決步驟如下:

1.先進入主庫,進行鎖表,防止數據寫入

使用命令:

mysql> flush tables with read lock;

注意:該處是鎖定為只讀狀態,語句不區分大小寫

2.進行數據備份

#把數據備份到mysql.bak.sql文件
[root@server01 mysql]#mysqlmp -uroot -p -hlocalhost > mysql.bak.sql
這里注意一點:資料庫備份一定要定期進行,可以用shell腳本或者python腳本,都比較方便,確保數據萬無一失
3.查看master 狀態

C. mysql設置成主從資料庫後,能在從資料庫中進行增刪改同步數據嗎如果想這么實現要怎麼做

主庫的主機關機時,數據只能讀不能寫,並且從庫的主機關機後,數據仍然可讀可寫,這個不好弄,如果你對lua腳本有所了解,修改mysql-proxy 的讀寫分離腳本或許可以實現。 不過主庫關機時不能訪問,並且從庫關機仍可讀可寫,這個不需要配讀寫分離,這本來就是主從復制的基本能力,從庫只是備用的而已。從庫關閉後再開啟,slave IO線程會自動從中斷處二進制日誌的位置開始復制主機的二進制日誌,slave SQL線程會讀取並執行這些二進制日誌中的SQL。 總之,不需要特別的配置,這是主從復制的基本能力。

D. mysql主從同步 如何同步已有的數據,

--主機開兩個窗口,一個進入mysql,一個是shell
--主機阻斷寫操作
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1529881 | openser | mysql,test |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
--另外一個窗口導出主機資料庫
mysqlmp -u root -p123456 --opt -R openser > openser20121203.sql
--剛才的窗口主機解鎖
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
mysql>
--打包數據文件到從機
drop database openser;
create database openser;
mysql -u root -p123456 openser < openser20121127.sql
--從機操作
SLAVE STOP;
reset slave;
CHANGE MASTER TO MASTER_HOST='192.168.21.26',
MASTER_USER='repl_user',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1529881;
start slave;
show slave status\G

E. MySQL主從資料庫備份,從資料庫中斷後能否同步到和主資料庫一致

主庫的主機關機時,數據只能讀不能寫,並且從庫的主機關機後,數據仍然可讀可寫,這個不好弄,如果你對lua腳本有所了解,修改mysql-proxy 的讀寫分離腳本或許可以實現。
不過主庫關機時不能訪問,並且從庫關機仍可讀可寫,這個不需要配讀寫分離,這本來就是主從復制的基本能力,從庫只是備用的而已。從庫關閉後再開啟,slave IO線程會自動從中斷處二進制日誌的位置開始復制主機的二進制日誌,slave SQL線程會讀取並執行這些二進制日誌中的SQL。
總之,不需要特別的配置,這是主從復制的基本能力。

F. mysql怎麼實時同步兩個資料庫

mysql怎麼實時同步兩個資料庫
實現兩個Mysql資料庫之間同步同步原理:
MySQL 為了實現replication 必須打開bin-log 項,也是打開二進制的MySQL 日誌記錄選項。MySQL 的bin log 二

進制日誌,可以記錄所有影響到資料庫表中存儲記錄內容的sql 操作,如insert / update / delete 操作,而不記錄

select 這樣的操作。因此,我們可以通過二進制日誌把某一時間段內丟失的數據可以恢復到資料庫中(如果二進制日

志中記錄的日誌項,包涵資料庫表中所有數據,那麼, 就可以恢復本地資料庫的全部數據了)。 而這個二進制日誌,

如果用作遠程資料庫恢復,那就是replication 了。這就是使用replication 而不用sync 的原因。這也是為什麼要設

置bin-log = 這個選項的原因。

G. mysql資料庫表數據同步有幾種方法

這一需求在不同機器上的,
1,通過replication
(master-slaves)實現了這兩張表的復制功能,
2,mysql的版本是5.1.54,基於記錄的復制(Row-Based
Replication)。
3,但是在備庫調用存儲過程時出了問題,這個存儲過程中使用了UUID_short()函數,在存儲過程這個函數不能產生新值。

H. 配置mysql主從 資料庫怎麼同步過來

主從資料庫同步 可以參考如下:
一、 概述
MySQL從3.23.15版本以後提供資料庫復制(replication)功能,利用該功能可以實現兩個資料庫同步、主從模式、互相備份模式的功能。本文檔主要闡述了如何在linux系統中利用mysql的replication進行雙機熱備的配置。
二、 環境
操作系統:Linux 2.6.23.1-42.fc8 # SMP(不安裝XEN)
Mysql版本:5.0.45-4.fc8
設備環境:PC(或者虛擬機)兩台
三、 配置
資料庫同步復制功能的設置都在MySQL的配置文件中體現,MySQL的配置文件(一般是my.cnf):在本環境下為/etc/my.cnf。
3.1 設置環境:
IP的設置:
A主機 IP:10.10.0.119
Mask:255.255.0.0
B主機 IP:10.10.8.112
Mask:255.255.0.0
在IP設置完成以後,需要確定兩主機的防火牆確實已經關閉。可以使用命令service iptables status查看防火牆狀態。如果防火牆狀態為仍在運行。使用service iptables stop來停用防火牆。如果想啟動關閉防火牆,可以使用setup命令來禁用或定製。
最終以兩台主機可以相互ping通為佳。
3.2 配置A主(master) B從(slave)模式
3.2.1 配置A 為master
、增加一個用戶同步使用的帳號:
GRANT FILE ON *.* TO 『backup』@'10.10.8.112' IDENTIFIED BY 『1234』;
GRANTREPLICATION SLAVE ON *.* TO 『backup』@'10.10.8.112' IDENTIFIED BY 『1234』;
賦予10.10.8.112也就是Slave機器有File許可權,只賦予Slave機器有File許可權還不行,還要給它REPLICATION SLAVE的許可權才可以。
、增加一個資料庫作為同步資料庫:
create database test;
、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
、修改配置文件:
修改A的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id = 1 #Server標識
log-bin
binlog-do-db=test #指定需要日誌的資料庫
、重起資料庫服務:
service mysqld restart
查看server-id:
show variable like 『server_id』;
實例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
、用show master status/G命令看日誌情況。
正常為:
mysql> show master status/G
*************************** 1. row ***************************
File: mysqld-bin.000002
Position: 198
Binlog_Do_DB: test,test
Binlog_Ignore_DB:
1 row in set (0.08 sec)
3.2.2 配置B 為slave
、增加一個資料庫作為同步資料庫:
create database test;
、創建一個表結構:
create table mytest (username varchar(20),password varchar(20));
、修改配置文件:
修改B的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:
server-id=2
master-host=10.10. 0.119
master-user=backup #同步用戶帳號
master-password=1234
master-port=3306
master-connect-retry=60 #預設重試間隔秒
replicate-do-db=test #告訴slave只做backup資料庫的更新
、重起資料庫服務:
service mysqld restart
查看server-id:
show variables like 『server_id』;
實例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0.00 sec)
、用show slave status/G命令看日誌情況。
正常為:
mysql> show slave status/G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.0.119
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000003
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,test
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 236
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.01 sec)
3.2.3 驗證配置
分別使用insert, delete , update在A主機進行增刪改查資料庫;查看B主機的資料庫是否與A主機一致;若一致,則配置成功。
3.3雙機互備模式
如果在A主機加入slave設置,在B主機加入master設置,則可以做B->A的同步。
、在A主機的配置文件中 mysqld配置項加入以下設置:
master-host=10.10.8.112
master-user=backup
master-password=1234
replicate-do-db=test
master-connect-retry=10
、在B的配置文件中 mysqld配置項加入以下設置:
log-bin
binlog-do-db=test
注意:當有錯誤產生時,*.err日誌文件同步的線程退出,當糾正錯誤後,要讓同步機制進行工作,運行slave start。
重起A、B機器,則可以實現雙向的熱備份。
四、 常見問題及解決
、Slave機器的許可權問題,不但要給slave機器File許可權,還要給它REPLICATION SLAVE的許可權。
、在修改完Slave機器/etc/my.cnf之後,slave機器的mysql服務啟動之前,記得要刪除掉master.info
、在show master status或著show slave status不正常時,看看.err是怎樣說的。
、Slave上Mysql的Replication工作有兩個線程, I/O thread和SQL thread。I/O的作用是從master 3306埠上把它的binlog取過來(master在被修改了任何內容之後,就會把修改了什麼寫到自己的binlog等待slave更新),然後寫到本地的relay-log,而SQL thread則是去讀本地的relay-log,再把它轉換成本Mysql所能理解的語句,於是同步就這樣一步一步的完成.決定I/O thread的是/var/lib/mysql/master.info,而決定SQL thread的是/var/lib/mysql/relay-log.info.
、啟動slave,命令用start slave;重新啟動用restart slave

I. 如何在 MySQL 資料庫之間同步數據表

如何在 MySQL 資料庫之間同步數據表
insert into table table1 select *from table2 where 條件 即可把table2中符合條件的語句同步到table 1中

熱點內容
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:122
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:298
手掛機腳本游 發布:2024-12-22 19:38:00 瀏覽:429
層次原理圖如何編譯 發布:2024-12-22 19:27:17 瀏覽:371
android計算緩存大小 發布:2024-12-22 19:16:54 瀏覽:660
php訪問模塊 發布:2024-12-22 19:05:24 瀏覽:272
電梯IC加密 發布:2024-12-22 19:04:47 瀏覽:376
腳本圈是引流加粉嗎 發布:2024-12-22 18:41:26 瀏覽:392
ajax文件上傳表單提交 發布:2024-12-22 17:55:00 瀏覽:856
win7無法共享的文件夾 發布:2024-12-22 17:53:39 瀏覽:41