国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL主從復(fù)制的用法詳情

2024-07-24 12:36:13
字體:
供稿:網(wǎng)友
  這篇文章主要講解了MySQL主從復(fù)制的用法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
 
  簡介
 
  MySQL 的主從復(fù)制又叫 Replication、AB 復(fù)制。至少需要兩個(gè) MySQL 服務(wù)(可以是同一臺機(jī)器,也可以是不同機(jī)器之間進(jìn)行)。
 
  比如A服務(wù)器做主服務(wù)器,B服務(wù)器做從服務(wù)器,在A服務(wù)器上進(jìn)行數(shù)據(jù)的更新,通過 binlog 日志記錄同步到B服務(wù)器上,并重新執(zhí)行同步過來的 binlog 數(shù)據(jù),從而達(dá)到兩臺服務(wù)器數(shù)據(jù)一致。
 
  MySQL 數(shù)據(jù)庫的主從復(fù)制方案,與使用 scp/rsync 等命令進(jìn)行的文件級別復(fù)制類似,都是數(shù)據(jù)的遠(yuǎn)程傳輸。

  步驟
 
  第一步:準(zhǔn)備好兩臺MySQL服務(wù)器
 
  mysql-master(主服務(wù)器):
 
  1. 創(chuàng)建目錄結(jié)構(gòu):
 
  master/conf、master/data、master/logs
 
  2. 啟動(dòng)運(yùn)行實(shí)例容器:
 
  docker run --name mysql-master
 
  > -p 3310:3306
 
  > -v ~/docker/master/conf:/etc/mysql/conf.d
 
  > -v ~/docker/master/data:/var/lib/mysql
 
  > -v ~/docker/master/logs:/var/log/mysql
 
  > -e MYSQL_ROOT_PASSWORD=123456
 
  > -d mysql:5.7
 
  3. 進(jìn)入容器
 
  docker exec -it mysql-master bash
 
  4. 登錄MySQL
 
  mysql -uroot -p
 
  mysql-slave(從服務(wù)器):
 
  1. 創(chuàng)建目錄結(jié)構(gòu):
 
  slave/conf、slave/data、slave/logs
 
  2. 啟動(dòng)運(yùn)行實(shí)例容器:
 
  docker run --name mysql-slave
 
  > -p 3310:3306
 
  > -v ~/docker/slave/conf:/etc/mysql/conf.d
 
  > -v ~/docker/slave/data:/var/lib/mysql
 
  > -v ~/docker/slave/logs:/var/log/mysql
 
  > -e MYSQL_ROOT_PASSWORD=123456
 
  > -d mysql:5.7
 
  3. 進(jìn)入容器
 
  docker exec -it mysql-slave bash
 
  4. 登錄MySQL
 
  mysql -uroot -p
 
  第二步:配置文件(my.cnf)修改
 
  主服務(wù)器:
 
  [mysqld]
 
  port = 3306
 
  server-id = 1
 
  #要同步的數(shù)據(jù)庫
 
  binlog-do-db = school
 
  #要生成二進(jìn)制日志文件 主服務(wù)器一定要開啟
 
  log-bin = mysql-bin
 
  重啟MySQL: docker restart mysql-master
 
  從服務(wù)器:
 
  [mysqld]
 
  port = 3306
 
  server-id = 2
 
  #要同步的數(shù)據(jù)庫
 
  binlog-do-db = school
 
  #要生成二進(jìn)制日志文件(從服務(wù)器可選)
 
  log-bin = mysql-bin
 
  重啟MySQL: docker restart mysql-slave
 
  第三步:創(chuàng)建主服務(wù)器復(fù)制用戶及相關(guān)權(quán)限
 
  create user 'slave'@'%' identified by '123456';//創(chuàng)建用戶
 
  grant replication slave,replication client on *.* to 'slave'@'%';//設(shè)置用戶權(quán)限
 
  flush privileges;//刷新權(quán)限
 
  show grants for 'slave'@'%';//查看用戶權(quán)限
 
  第四步:數(shù)據(jù)備份同步
 
  1. 登錄master,執(zhí)行鎖表操作
 
  mysql -uroot -p
 
  FLUSH TABLES WITH READ LOCK;
 
  2. 將master中需要同步的db的數(shù)據(jù)dump出來
 
  mysqldump -uroot -p school > school.dump
 
  3. 將數(shù)據(jù)導(dǎo)入slave
 
  mysql -uroot -h272.17.0.4 -p school < school.dump
 
  4. 解鎖master
 
  UNLOCK TABLES;
 
  第五步:主服務(wù)器復(fù)制狀態(tài)
 
  1. 創(chuàng)建新數(shù)據(jù)表及增加數(shù)據(jù)
 
  create table user( id int(10) auto_increment, name varchar(30), primary key (id) )charset=utf8mb4;
 
  insert into user(name) values(222);
 
  2. 主服務(wù)器 binlog 記錄狀態(tài)
 
  mysql> show master status;
 
  +------------------+----------+--------------+------------------+-------------------+
 
  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
 
  +------------------+----------+--------------+------------------+-------------------+
 
  | mysql-bin.000001 | 769 | school | | |
 
  +------------------+----------+--------------+------------------+-------------------+
 
  MySQL主從復(fù)制的用法
 
  第六步:從服務(wù)器開始復(fù)制
 
  1. 連接主服務(wù)器及設(shè)置復(fù)制的起始節(jié)點(diǎn)
 
  mysql> change master to master_host='172.17.0.3',
 
  -> master_port=3306,
 
  -> master_user='slave',
 
  -> master_password='123456',
 
  -> master_log_file='mysql-bin.000001',
 
  -> master_log_pos=769;
 
  2. 開始復(fù)制
 
  start slave;
 
  3. 查看復(fù)制狀態(tài)
 
  mysql> show slave status /G
 
  *************************** 1. row ***************************
 
  Slave_IO_State: Waiting for master to send event
 
  Master_Host: 172.17.0.3
 
  Master_User: slave
 
  Master_Port: 3306
 
  Connect_Retry: 60
 
  Master_Log_File: mysql-bin.000001
 
  Read_Master_Log_Pos: 961
 
  Relay_Log_File: 87dc5224655d-relay-bin.000003
 
  Relay_Log_Pos: 320
 
  Relay_Master_Log_File: mysql-bin.000001
 
  Slave_IO_Running: Yes //表示I/O線程讀取成功
 
  4. 查看數(shù)據(jù)表數(shù)據(jù)
 
  mysql> show create table user/G
 
  *************************** 1. row ***************************
 
  Table: user
 
  Create Table: CREATE TABLE `user` (
 
  `id` int(10) NOT NULL AUTO_INCREMENT,
 
  `name` varchar(30) DEFAULT NULL,
 
  PRIMARY KEY (`id`)
 
  ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4
 
  mysql> select * from user;
 
  +----+------+
 
  | id | name |
 
  +----+------+
 
  | 1 | 222 |
 
  +----+------+
 
  復(fù)制的控制相關(guān)命令:
 
  stop salve //停止slave連路
 
  reset slave //重置slave連路
 
  start slave //開啟slave連路
 
  stop master //停止master連路
 
  reset master //重置master連路
 
  start master //開啟master連路
 
  第七步:主從服務(wù)器的進(jìn)程查看
 
  mysql-master:
 
  MySQL主從復(fù)制的用法
 
  mysql-slave:
 
  MySQL主從復(fù)制的用法
 
  看完上述內(nèi)容,是不是對MySQL主從復(fù)制的用法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容。
 

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 广汉市| 察哈| 凌源市| 刚察县| 灌阳县| 菏泽市| 容城县| 共和县| 陆河县| 彝良县| 华宁县| 会同县| 尚志市| 苗栗县| 封开县| 南康市| 宁夏| 温州市| 朔州市| 邛崃市| 杭锦旗| 修武县| 嘉峪关市| 潜山县| 威远县| 巴东县| 健康| 沛县| 千阳县| 鄯善县| 达孜县| 天台县| 田东县| 临湘市| 大同县| 石阡县| 高台县| 涿鹿县| 庆安县| 凤台县| 涿鹿县|