mysql主從搭建

來源:互聯網
上載者:User

標籤:mysql   主從   搭建   

mysql是常用的資料庫,而為了保證資料的不丟失,mysql的主從成為很多企業的選擇,裡面牽涉到的原理簡介如下:slave伺服器通過Slave_IO_Running進程同步master資料庫的bin-log日誌,此日誌記錄了主mysql的sql操作,同步過來後slave伺服器通過自己的Slave_sql——runing進程執行同步,這樣做的好處是實現了讀寫分離。下面是具體搭建過程。

    我用的是centos6.4,mysql為了簡單用yum裝好了。

    1關閉防火牆,或者允許3306連接埠通過

    2修改master伺服器的my.cnf檔案,我的主mysql的ip地址為192.168.112.122

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=2
log-bin=master-log

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

修改後重啟mysql,service mysqld restart

    3登入主mysql

    mysql  -uroot -p123

 grant replication  slave on *.* to [email protected] identified by ‘123456‘;

 flush privileges;

  show master status;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-log.000002 |     1408 | mysql        | zabbix           |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

4對slave資料庫進行配置

vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=2
log-bin=master-log

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

儲存後重啟mysql資料庫

5登入從資料庫

mysql  -uroot -p12345678

stop slave;

change master to  master_user=‘zhanghe‘, master_host=‘192.168.112.122‘, master_password=‘123456‘, master_port=3306, master_log_file=‘master-log.000002‘, master_log_pos=1408;

start slave;

show slave status\G;

如果 Slave_IO_Running: Yes    Slave_SQL_Running: Yes則為配置成功

5.1如果Slave_IO_Running: No,我認為應該從三方面查看,1網路是否通,特別是虛擬機器時必須是橋接模式2my.cnf配置有誤3許可權問題

5.2 如果Slave_SQL_Running:No

1.程式可能在slave上進行了寫操作
2.也可能是slave機器重起後,交易回復造成的.

解決辦法:1.首先停掉Slave服務:slave stop

2.到主伺服器上查看主機狀態:

3.到slave伺服器上執行手動同步:
mysql> change master to
> master_host=‘master_ip‘,
> master_user=‘user‘,
> master_password=‘pwd‘,
> master_port=3307,
> master_log_file=‘mysql-bin.000020‘,
> master_log_pos=135617781;
1 row in set (0.00 sec)

  4 start slave;show slave status\G;

 

 

6在主要資料庫插入資料,看從資料庫是否有資料

 

本文出自 “zhanghe” 部落格,請務必保留此出處http://9206668.blog.51cto.com/9196668/1530032

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.