MySql(18)——Linux MySQL主從配置

MySQL 主從配置

Author:xushuyi

參照技術:http://www.cnblogs.com/kevingrace/p/6256603.html

?

1. 主從數據庫

1、主庫:192.168.56.100

2、從庫:192.168.56.102

3、創建主從數據庫一定要保證主從數據庫字符集編碼的一致性,否則主從同步數據會發生異常。

  因主從數據字符集編碼不一致,常見的問題如下:

  1.?Column 1 of table 'xxx' cannot be converted from type 'varchar(33)' to type 'varchar(11)'

    解決方案:http://www.cnblogs.com/wzbz/p/6825761.html

  2. 一定要調整主從數據庫字符集編碼一致性

    

?

4、創建表時一定要加上字符集編碼 utf8 設置,避免主從數據同步異常問題,其實遇到問題類同 3

  1、修改數據表字符集:ALTER TABLE transfervouchers CONVERT TO CHARACTER SET utf8;

  2、創建表 設置字符集

    

create table jpgxhealthvalrecordhistory
(ID                   bigint not null auto_increment comment '主鍵ID',activityid           bigint comment '活動ID',userid               bigint comment '用戶ID',activitylotteryid    bigint comment '活動抽獎ID',activityawardid      bigint comment '活動獎品ID',contributehealthvalue bigint comment '已貢獻健康值',createtime           timestamp comment '創建時間',modifytime           timestamp comment '修改時間',primary key (ID)
)CHARACTER SET utf8;
alter table jpgxhealthvalrecordhistory comment '獎品貢獻健康值歷史記錄表';

?

4、主庫一旦重啟,主庫對應二進制文件發生改變,從庫需要重新指向主庫新的二進制文件

master_host='192.168.56.100',master_user='slave',master_password='Sino@slave12345',? master_log_file='mysql-bin.000002',master_log_pos=400;

?

2.主庫配置:

#vi /etc/my.cnf

[mysqld]

????log-bin=mysql-bin ???//[必須]啟用二進制日志

??? server-id=1100 ??//[必須]服務器唯一ID,默認是1,一般取IP最后一段

  binlog-do-db=imove ?//需要同步的數據庫。如果是多個同步庫,就以此格式另寫幾行即可。如果不指明對某個具體庫同步,就去掉此行,表示同步所有庫(除了ignore忽略的庫)

  binlog-ignore-db=sys ?//#不同步mysql系統數據庫。如果是多個不同步庫,就以此格式另寫幾行;也可以在一行,中間逗號隔開

?

?

登錄主庫MySQL

#cd /usr/local/mysql

#./bin/mysql -u root -p

?

?

mysql> create user slave identified by 'Sino@slave12345';

mysql> grant all on *.* to slave@'192.168.56.102' identified by 'Sino@slave12345';

mysql> exit;

?

重啟主庫MySQL

#/etc/init.d/mysql restart;

#show master status;

?

?

3.從庫配置:

vi /etc/my.cnf

log-bin=mysql-bin ?????//[必須]啟用二進制日志

server-id=102 ?????//[必須]服務器唯一ID,默認是1,一般取IP最后一段

replicate-do-db=imove //需要同步的數據庫名。如果不指明同步哪些庫,就去掉這行,表示所有庫的同步(除了ignore忽略的庫)

replicate-ignore-db=sys ?//不同步mysql系統數據庫

slave-skip-errors=all ????//跳過所有的錯誤錯誤,繼續執行復制操作; 這個配置最好不要加上,遇到問題就要解決問題,不能直接跳過

?

?

?

重啟主庫MySQL

#/etc/init.d/mysql restart;

之后進入從庫MySQL 修改master配置:

登錄主庫MySQL

#cd /usr/local/mysql

#./bin/mysql -u root -p

mysql> change master to master_host='192.168.56.100',master_user='slave',master_password='Sino@slave12345', ?????master_log_file='mysql-bin.000002',master_log_pos=400;

查看從庫master是否配置成功:

?mysql> show slave status\G;

?

======------------------------------可能使用的命令:在更改 master 的時候------------============

STOP SLAVE IO_THREAD FOR CHANNEL '';

START SLAVE IO_THREAD FOR CHANNEL '';

?

?

?

上圖可以看到: Slave_IO_running: NO

Salve_SQL_Running: NO

需要對slave mysql 進行設置:

先關閉slave

mysql> stop slave

之后進行設置:

mysql> set global sql_slave_skip_counter =1 ;

之后再開啟:

mysql> start slave

mysql> show slave status\G

?

?

OK.

?

異常情況:

?

?

這個異常情況說明,從庫同步主庫二進制文件的位置不正確。

解決:http://www.linuxidc.com/Linux/2012-02/54729.htm

binlog二進制文件轉換為txt文件

?

?

說明從庫同步主庫的二進制文件應該從 123 行開始。

登錄從庫MySQL

mysql> stop slave;

mysql> change master to master_log_file='mysql-bin.000002',master_log_pos=123;

mysql> start slave;

mysql> show slave status\G;

?

?

4.驗證主從同步

之后登錄 master mysql, 進行如下操作:

create database hi_db;

use hi_db;

create table hi_tb(id int(3),name char(10));

insert into hi_tb values(001,'bobu');

show databases;

?

?

?

之后登錄slave mysql

show databases;

可以看到:

?

?

轉載于:https://www.cnblogs.com/xushuyi/articles/7699024.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253095.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253095.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253095.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux之PHY

一.結構體 1.PHY設備 [cpp]view plaincopy struct phy_device { struct phy_driver *drv; //PHY設備驅動 struct mii_bus *bus; //對應的MII總線 struct device dev; //設備文件 u32 phy_id; //PHY ID enum phy_state state; //PHY狀態 …

元器件 失效分析 過程介紹

硬件產品在使用過程中,常常會出現功能失效的情況。排除裝配異常的話,功能失效一般是電路可能出現故障,具體可能是某個元器件損壞了。需要研發及時分析定位故障原因及時改善排除故障,尤其是在試產階段,顯得十分重要&…

OWI

2019獨角獸企業重金招聘Python工程師標準>>> V$EVENT_NAME V$EVENT_NAME displays information about wait events. ColumnDatatypeDescriptionEVENT#NUMBERNumber of the wait eventEVENT_IDNUMBERIdentifier of the wait eventNAMEVARCHAR2(64)Name of the wait e…

201521123110《Java程序設計》第5周學習總結

1. 本周學習總結 1.1 嘗試使用思維導圖總結有關多態與接口的知識點。 2. 書面作業 1.代碼閱讀:Child壓縮包內源代碼 1.1 com.parent包中Child.java文件能否編譯通過?哪句會出現錯誤?試改正該錯誤。并分析輸出結果。不能編譯通過,因為System.out.println…

Python中正則表達式講解

正則表達式是匹配字符串的強大武器,它的核心思想是給字符串定義規則,凡是符合規則的字符串就是匹配了,否則就是不合法的。在介紹Python的用法之前,我們先講解一下正則表達式的規則,然后再介紹在Python中如何運用。 如果…

電源適配器上各符號的意義都清楚嗎?

現在家里的電子產品是越來越多了,比如:手機、平板、筆記本、智能電視、智能音箱、路由器、剃須刀等;機身或者充電器上都有很多符號標志。 有沒有好奇過或者被小孩詢問過,這些符號標志都是什么意思呢?只有讀懂這些符號…

蘇寧海量服務器自動化配置運維實踐

運維的演進 人力運維階段 在IT產業的早期,服務器運維是通過各種Ad Hoc命令或者Shell腳本來完成基礎設施的自動化工作,這種方式對于簡單,一次性的工作很方便,但是對于復雜和長期的項目,后期的腳本維護非常麻煩。自動化工…

JS小技巧

JS操作偽元素 CSS代碼: #myId:before {content: "hello world!";display: block;width: 100px;height: 100px;background: red; } JS 代碼: var myIdElement document.getElementById("myId"); var beforeStyle window.getCompute…

流媒體服務器

1 引言   隨著互聯網的飛速發展,流媒體技術的應用越來越廣泛,從網上廣播、電影播放到遠程教學以及在線的新聞網站等都用到了流媒體技術。但現有公開文獻所報道 的大多是利用現有的流媒體服務器來搭建一個流媒體服務系統,或者是針對流媒體數據的編碼方式所進行的…

試產機器發現元器件損毀 風險排查過程

產品在試產階段或者公測階段,發現有個別機器功能異常,研發定位為個別元器件損壞; 定位過程大致有如下步驟: A-故障現象復現 B-輸入輸出檢查 C-電源及管腳狀態測量 D-交叉驗證 E-基本外觀觀察和特性測量 然后將器件郵寄給原…

騰訊面試經驗2

時間:2017年10月16日11:30面試。 地點:重慶萬達艾美酒店。 信息:女,本科應屆生,面試后臺開發崗位。 在深圳的面試已經全部結束了,偶然間聽朋友說重慶、長沙等場地的面試還在進行中,只要修改面試…

簡易有效Api接口防攻擊策略

API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。 簡單…

CSS 如何設置垂直居中

1、水平居中我們都知道,可以直接用: margin:0 auto; 2、垂直居中,需要做一點小小的計算,關鍵代碼如下: height: 600px; position: absolute; top: 50%; margin-top:-300px; 如需水平且垂直居中: height: 60…

被稱為海淀媽媽四大神器之一的傾聽者K3 硬件拆解

暑假期間發現很多博主都在推薦傾聽者K3,被海淀媽媽們稱為四大神器之一, 雖然暫沒聽說其他三大神器是什么,作為教育硬件愛好者還是決定先整個回來拆拆看。 在京東上搜到傾聽者K3版本一共有三種顏色,分別是藍色(悟空藍&…

有名信號量sem_open和內存信號量sem_init創建信號量的區別

有名信號量sem_open和內存信號量sem_init創建信號量的區別 分類: C/C sem_t *sem sem_open(const char *name, int oflag, .../*mode_t mode,unsinged int value) ;int sem_init(sem_t *sem,int shared, unsigned int value);區別:1.創建有名信號量必須…

KVM虛擬機相關步驟

KVM是Kernel-based Virtual Machine的簡稱,是一個開源的虛擬化模塊,該文檔是基于CentOS 7.4環境操作的 一、操作系統安裝 本文采用的是CentOS 7.4 1、查看系統版本 cat /etc/redhat-release 2、系統更新 Yum makecache &&yum update && …

dds設計信號發生器

高一 150206101 Dds數字信號發生器設計方案 DDS的工作原理框圖如下 在微機內,若插入一塊D/A轉換卡,然后編制一段小程序,如連續進行加一運算到一定值,然后連續進行減一 運算回到原值,在反復運行該程序,則微機…

Maven--資源文件resource的問題

2019獨角獸企業重金招聘Python工程師標準>>> Maven項目的目錄有: src/java/main src/java/resource src/test/main src/test/resource 有的時候在resource目錄下添加文件卻不能加載出來,解決的辦法是從把添加的資源文件添加到properties---&g…

pthread_create()創建線程最大個數

線程應用程序最常見導致創建線程失敗的原因是線程棧大小的設置。創建一個新的線程,默認情況下系統為線程棧預留了2MB的尋址空間。線程棧起始于進程虛擬 內存的高端地址,并向虛擬內存底端地址方向擴展。取決于線程本身的大小以及其它線程內存分配的情況&a…

C++ Primer 5 CH4 表達式

4.1 基礎 函數調用也是一種特殊的運算符,它對運算對象的數量沒有限制。C 的表達式要么是左值,要么是右值。左值可以位于賦值語句的左邊,右值則不可以。當一個對象被用作右值的時候,用的是對象的值;當對象被用作左值的時…