MySQL - 1主多從安裝配置教程(單機)

        最近在看sharding-jdbc(即將發佈3.0版本,並改名Sharding-Sphere,俗話說,只看不練假把式。因此,準備在本身的雲服務上搭建一套mysql主從環境,可是迫於只有一臺雲服務器,因此只能搭建單機版的mysq一主多從。html

        不常常搭建mysq服務器,只能在網上搜、參考,一搜一大把,也不知道哪一個對、哪一個錯,通過不斷嘗試,總結出了一套正確的方案,特此記錄。mysql

 

服務器環境c++

  • centos7 64位

  • 能夠經過rpm-qa|grep name來驗證如下軟件包是否已所有安裝sql

    cmake make gcc gcc-c++ ncurses-devel bison

    若缺乏相關軟件包,則使用yum –y install方式安裝數據庫

建立mysq用戶vim

  • 檢測mysql用戶是否存在
    id mysql
  • 若不存在,建立
    groupadd mysql
    
    useradd -r -g mysql mysql

     

下載安裝包centos

  • 下載
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz

     

  • 解壓
    tar zxvf mysql-5.6.36.tar.gz
  • 建立主從目錄,並拷貝文件內容
    (1)建立主mysql目錄
    mkdir -p /usr/local/mysql-m /usr/local/mysql-m/etc /opt/database-m /var/run/mysql-m /var/log/mysql-m
    (2)建立從mysql目錄
    mkdir -p /usr/local/mysql-s /usr/local/mysql-s/etc /opt/database-s /var/run/mysql-s /var/log/mysql-s
    (3)複製數據到mysql主從目錄
    cd zxvf mysql-5.6.36
    cp ./* -ir /usr/local/mysql-s/
    cp ./* -ir /usr/local/mysql-m/

     

  • 賦權限
    #主庫
    chown -R mysql.mysql /usr/local/mysql-m
    chown -R mysql.mysql /opt/database-m
    chown -R mysql.mysql /var/run/mysql-m
    chown -R mysql.mysql /var/log/mysql-m
    
    #從庫
    chown -R mysql.mysql /usr/local/mysql-s
    chown -R mysql.mysql /opt/database-s
    chown -R mysql.mysql /var/run/mysql-s
    chown -R mysql.mysql /var/log/mysql-s

     

安裝 主mysqlbash

  • 進入主mysql目錄
    cd /usr/local/mysql-m

     

  • 執行cmake編譯
    cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql-m -DMYSQL_DATADIR:PATH=/opt/database-m -DSYSCONFDIR:PATH=/usr/local/mysql-m/etc -DMYSQL_TCP_PORT=3307 -DWITH_DEBUG:BOOL=on

     
  • 安裝
    make && make install

    安裝完成後,以下圖所示:
  • 編輯配置文件
    vim /usr/local/mysql-m/etc/my.cnf
    [mysql]
    
    socket=/var/run/mysql-m/mysql-m.sock
    
    
    
    [mysqld]
    
    user=mysql
    
    port=3307
    
    basedir=/usr/local/mysql-m
    
    datadir=/opt/database-m
    
    socket=/var/run/mysql-m/mysql-m.sock
    
    pid-file=/var/run/mysql-m/mysql-m.pid
    
    
    
    [mysqld_safe]
    
    log-error=/var/log/mysql-m/mysql-m-error.log

     

  • 拷貝啓動項服務器

    cp /usr/local/mysql-m/support-files/mysql.server /etc/rc.d/init.d/mysql-m

     

  • 編輯啓動項socket

    vim /etc/rc.d/init.d/mysql-m

                              
    #修改conf=/usr/local/mysql-m/etc/my.cnf保存退出

  • 安裝
    執行

    /usr/local/mysql-m/scripts/mysql_install_db --basedir=/usr/local/mysql-m --datadir=/opt/database-m --user=mysql


    若是沒有權限,執行下面語句:

     

  • 安裝完成

  • 啓動服務

    chkconfig --add mysql-m
    chmod 755 /etc/init.d/mysql-m
    service mysql-m start


    以下圖所示:

  • 檢測是否啓動成功
    lsof -i:3307

安裝 從mysql
步驟與安裝主mysql相似

執行安裝完成後,如圖所示:

配置主從

  1. 修改配置文件
    vim /usr/local/mysql-m/etc/my.cnf,以下圖所示


    修改完成後,重啓:service mysql-m restart
    注意:若是這裏只想同步一個數據庫,能夠單獨設置:binlog-do-db=dbname

  2. 登陸主庫mysql,並給從受權
    #重置密碼

    /usr/local/mysql-m/bin/mysqladmin -uroot password '123456'  -S /var/run/mysql-m/mysql-m.sock

    #登陸

    /usr/local/mysql-m/bin/mysql -uroot -p123456 -S /var/run/mysql-m/mysql-m.sock

    #受權給從服務器

    mysql> grant replication slave on *.* jack1@localhost identified by '123456';
    
    mysql> grant replication slave on *.* jack2@localhost identified by '123456';
    
    mysql>flush privileges;

     

  3. 查看主的狀態,並記錄fileposition的值,後面要用

    file:mysql-bin.000001
    position:120
     

  1. 修改配置文件
    vim /usr/local/mysql-s/etc/my.cnf

    修改完成後,重啓:service mysql-s restart
  2. 登陸從庫mysql,執行同步主從操做
    登陸:
    /usr/local/mysql-s/bin/mysql -uroot -p -S /var/run/mysql-s/mysql-s.sock

    執行同步語句:
    change master to master_host='localhost', master_user='root', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=120, master_port=3307;


    start slave;

    如圖:

 

驗證

通過以上步驟,就安裝配置完成mysql主從配置。查看主從狀態以下圖所示:


 

彩蛋

若是是從遠端服務器訪問數據庫,好比阿里雲。須要登陸數據庫後設置訪問權限。

  1. 受權主機訪問:
    MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密碼' WITH GRANT OPTION; 

     

  2. 刷新權限:
    MySQL>FLUSH PRIVILEGES;

     

  3. 退出:
    MySQL>EXIT;

     

 

安裝部署途中,遇到的問題參考博客:mysql-5.6.27源碼安裝及錯誤解決辦法,特此鳴謝!

相關文章
相關標籤/搜索