本文目錄一覽:
- 1、如何配置兩個MySQL數據庫之間的主從同步功能?
- 2、mysql主從數據庫不同步的2種解決方法
- 3、MYSQL數據怎麼從一個電腦轉移到另一個的電腦
- 4、怎麼把mysql一個數據庫從一台機器上 拷貝到另外一台
如何配置兩個MySQL數據庫之間的主從同步功能?
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主從數據庫不同步的2種解決方法
今天發現Mysql的主從數據庫沒有同步
先上Master庫:
mysqlshow
processlist;
查看下進程是否Sleep太多。發現很正常。
show
master
status;
也正常。
mysql
show
master
status;
+——————-+———-+————–+——————————-+
|
File
|
Position
|
Binlog_Do_DB
|
Binlog_Ignore_DB
|
+——————-+———-+————–+——————————-+
|
mysqld-bin.000001
|
3260
|
|
mysql,test,information_schema
|
+——————-+———-+————–+——————————-+
1
row
in
set
(0.00
sec)
再到Slave上查看
mysql
show
slave
status\G
Slave_IO_Running:
Yes
Slave_SQL_Running:
No
可見是Slave不同步
下面介紹兩種解決方法:
方法一:忽略錯誤後,繼續同步
該方法適用於主從庫數據相差不大,或者要求數據可以不完全統一的情況,數據要求不嚴格的情況
解決:
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]#mysqldump
-uroot
-p
-hlocalhost
mysql.bak.sql
這裡注意一點:數據庫備份一定要定期進行,可以用shell腳本或者python腳本,都比較方便,確保數據萬無一失
3.查看master
狀態
mysql
show
master
status;
+——————-+———-+————–+——————————-+
|
File
|
Position
|
Binlog_Do_DB
|
Binlog_Ignore_DB
|
+——————-+———-+————–+——————————-+
|
mysqld-bin.000001
|
3260
|
|
mysql,test,information_schema
|
+——————-+———-+————–+——————————-+
1
row
in
set
(0.00
sec)
4.把mysql備份文件傳到從庫機器,進行數據恢復
#使用scp命令
[root@server01
mysql]#
scp
mysql.bak.sql
root@192.168.128.101:/tmp/
5.停止從庫的狀態
mysql
stop
slave;
6.然後到從庫執行mysql命令,導入數據備份
mysql
source
/tmp/mysql.bak.sql
7.設置從庫同步,注意該處的同步點,就是主庫show
master
status信息里的|
File|
Position兩項
change
master
to
master_host
=
‘192.168.128.100’,
master_user
=
‘rsync’,
master_port=3306,
master_password=”,
master_log_file
=
‘mysqld-bin.000001’,
master_log_pos=3260;
8.重新開啟從同步
mysql
stop
slave;
9.查看同步狀態
mysql
show
slave
status\G
查看:
Slave_IO_Running:
Yes
Slave_SQL_Running:
Yes
好了,同步完成啦。
MYSQL數據怎麼從一個電腦轉移到另一個的電腦
1、找到my.ini文件,裏面有一行datadir=…的,就是數據庫文件目錄,
關掉mysql服務,將這個目錄整個拷貝過去
在那邊再配my.ini讓目錄吻合就行了。
2、
把數據庫上的資料備份出來,到另外一個數據庫還原,有工具PHPMYADMIN;
也可以命令行導出,
利用「mysqldump -u 用戶名 -p databasename exportfilename」導出數據庫到文件,導入:
進入MySQL Command Line Client,輸入密碼,進入到「mysql」,輸入命令”show databases;”,回車,看看有些什麼數據庫;建立你要還原的數據庫,輸入”create database voice;”,回車;切換到剛建立的數據庫,輸入”use voice;”,回車;導入數據,輸入”source voice.sql;”,回車,開始導入,再次出現”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』
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/127608.html