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

首頁 > 數據庫 > MySQL > 正文

mysql主從復制配置步驟經典實例

2024-07-24 12:35:22
字體:
來源:轉載
供稿:網友
  主從復制的核心就是把mysql數據庫從A機器同時備份到B機器了,這樣可以方便分布式的數據處理了,下面我們來看一個經典的mysql主從復制配置步驟.
 
  IP規劃:
 
  mysql主:192.168.0.100
 
  mysql從:192.168.0.200
 
  my.cnf配置:主mysql中的[mysqld]項里除了要配置相關參數以外還要配置必要的三項,現將一個最簡單的示例:
 
  [mysqld]
  user=mysql
  pid-file=/var/run/mysqld/mysqld.pid
  socket=/var/run/mysqld/mysqld.sock
  basedir=/usr
  datadir=/var/lib/mysql
  tmpdir=/tmp
  log-bin=master-bin
  log-bin-index=master-bin.index
  server-id=1
  備機相應的配置如下:
 
  [mysqld]
  user=mysql
  pid-file=/var/run/mysqld/mysqld.pid
  socket=/var/run/mysqld/mysqld.sock
  basedir=/usr  --phpfensi.com
  datadir=/var/lib/mysql
  tmpdir=/tmp
  server-id=2
  relay-log=slave-relay-bin
  relay-log-index=slave-relay-bin.index  
  注:relay項配置的是中繼日志和中繼索引文件,如果二進制日志文件和中繼日志文件名不指定,則默認使用主機名,推薦進行自定義.
 
  重啟mysql使上面的配置生效,在主mysql上新建一個用于復制權限的用戶:
 
  mysql> grant replication slave on *.* to 'repl'@'%' identified by 'mysqls';
 
  上面新建的為用戶名repl,密碼為mysqls的用戶,當然出于安全考慮,可以修改句中的%號為指定主機.
 
  Query OK, 0 rows affected (0.00 sec)
 
  當出現上面的提示時,表示已新建用戶成功.
 
  mysql> show master status;
  +-------------------+----------+--------------+------------------+
  | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  +-------------------+----------+--------------+------------------+
  | master-bin.000004 |      224 |              |                  |
  +-------------------+----------+--------------+------------------+
  1 row in set (0.00 sec)  --phpfensi.com
  在備mysql上指定復制主機的相關信息,并指定要復制的二進制文件和log號.
 
  mysql> change master to master_host='192.168.0.100',master_user='repl',master_password='mysqls',master_log_file='master-bin.000004',master_log_pos=224;
  master_host這一項的值建議使用主機名,因為如果遇到IP地址變更的,主機名一般不會變更,所以還是生效的,但IP變了,這里還是用的IP,就會導致主機無法找到對應的主設備.
 
  啟用slave狀態:
 
  mysql> start slave;
 
  使用show slave status查看是否配置成功:
 
  mysql> show slave status;
 
  結果太多,我這里就不再復制,但主機看下面的兩處,如果看到值是yes,表示已經成功.
 
  Slave_IO_Running:Yes
 
  Slave_SQL_Running:Yes
 
  驗證數據的同步:主mysql上進行建庫,建表,并插入測試數據:
 
  mysql> create database repl;
  mysql> create table my(id int(3),name char(10));
  mysql> insert into first_tb values (001,'test');
  以上操作在主機上每操作一步,都可以在備機上看到也有相應的庫、表、值的增加,干脆來個狠的,在主mysql上利用批處理,加入1000條數據:
 
  #!/bin/bash
  for (( i=0;i<1000;i++))
  do
  m=`tr -dc A-Z-a-z</dev/urandom |head -c 5`
  mysql -uroot -ptest repl -e"insert into my values ($i,'"$m"')"
  done
  在備機上,對應上面的主機的操作,都可以查看到相應的數據.
 
  mysql> show databases;
  mysql> use repl;
  mysql> show tables;
  mysql> select * from my;
  上面的操作都是在主機和備機都是在一個全新安裝的環境下進行的測試,而在生產環境中要使用時,先要將雙方要同步的數據庫同容進行同步,而如果主數據還有應用在使用時,還要刷新數據庫并銷定數據庫.
 
  mysql>flush tables with read lock;
 
  先利用mysqldump導出所有的數據,并導入到備機,完成后,再在主mysql上解鎖.
 
  mysql>unlock tables;
 
  當然如果數據量很大的情況下,利用mysqldump處理是很慢的,這里建議使用復制物理文件進行數據同步.
 
  同步操作和上面的相同,上面的mysql操作同步是對所有庫的完全同步,也包括mysql、information_schema這兩個庫的數據,如果要指定同步的數據庫和忽略的數據庫還要用到四個參數:
 
  binlog-do-db=repl
  binlog_ignore_db=mysql
  binlog_ignore_db=information_schema
  replicate-do-db=repl
  replicate-wild-ignore-table=mysql
  replicate-wild-ignore-table=information_schema
  當然上面的四個參數使用的時候是有講究的,使用不當還是有風險的,回頭再專門做一個總結吧.

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 太仆寺旗| 阜平县| 南乐县| 皋兰县| 措勤县| 忻州市| 中阳县| 遵化市| 禹州市| 社旗县| 屯留县| 项城市| 绥中县| 凉山| 新兴县| 博客| 泽库县| 志丹县| 碌曲县| 蒲江县| 北流市| 三穗县| 雷州市| 晋宁县| 桐庐县| 勃利县| 桐梓县| 沂水县| 景宁| 玉环县| 隆子县| 读书| 西平县| 吉安县| 柯坪县| 双桥区| 闵行区| 若尔盖县| 兖州市| 宿松县| 德钦县|