国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 朝阳市| 台北市| 五寨县| 睢宁县| 青川县| 马公市| 呼伦贝尔市| 太白县| 永善县| 泽库县| 呼玛县| 高阳县| 毕节市| 西吉县| 绥棱县| 邯郸市| 偏关县| 金塔县| 碌曲县| 剑阁县| 惠安县| 若羌县| 定西市| 买车| 湄潭县| 恩施市| 尚志市| 陈巴尔虎旗| 高州市| 保靖县| 海安县| 河南省| 清新县| 珠海市| 酒泉市| 亚东县| 长汀县| 赫章县| 潞西市| 义马市| 晴隆县|