MySQL主從環境搭建

第一步:下載rpm包

mysql官網下載:http://dev.mysql.com/downloads/mysql/ 
如果網速不好,可以點鏈接下載指定版本:http://mirrors.sohu.com/mysql/MySQL-5.7/ 
我用的是CentOS7.3,下載的是: mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar文件

第二步:MySQL安裝

  1. 檢查系統自帶的MySQL及相關RPM包是否安裝,如有安裝,需要卸載:

    rpm -qa | grep -i mysql

    卸載MySQL的RPM包:
    rpm -ev --nodeps qt-mysql-4.8.5-13.el7.x86_64
    rpm -ev --nodeps qt5-qtbase-mysql-5.6.1-10.el7.x86_64
    rpm -ev --nodeps qt3-MySQL-3.3.8b-51.el7.x86_64
    yum -y remove mysql

  2. 檢查系統自帶的mariadb及相關RPM包是否安裝,如有安裝,需要卸載:
    rpm -qa | grep -i mariadb

    卸載MySQL的RPM包:
    rpm -ev --nodeps mariadb-libs-5.5.52-1.el7.x86_64
    rpm -ev --nodeps mariadb-devel-5.5.52-1.el7.x86_64
    yum -y remove mariadb
  3. 解壓tar文件,並安裝
    tar -xvf mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar
    解壓完成,然後依次執行以下命令安裝(注意先後順序):
    rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
    到此,mysql已經安裝完成
  4. 初始化(這裏是以root身份執行的):
    配置/etc/my.cnf,添加:sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  (5.7需要配置,否則報錯1055)
    cd /usr/bin/
    mysqld --initialize --user=mysql
    注:使用–initialize會爲root賬戶生成一個隨機的初始密碼,查看root密碼:
    cat /var/log/mysqld.log
  5. 修改root密碼
    A、啓動MySQL
    service mysqld start
    B、進入MySQL數據庫:
    mysql -u root -p'NhwIKlStU9!p'
    C、設置密碼複雜度

    mysql> set global validate_password_policy=0; 
    Query OK, 0 rows affected (0.05 sec) 
    mysql> set global validate_password_mixed_case_count=0; 
    Query OK, 0 rows affected (0.00 sec) 
    mysql> set global validate_password_number_count=3; 
    Query OK, 0 rows affected (0.00 sec) 
    mysql> set global validate_password_special_char_count=0; 
    Query OK, 0 rows affected (0.00 sec) 
    mysql> set global validate_password_length=3; 
    Query OK, 0 rows affected (0.00 sec)

    D、修改MySQL密碼:
    mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    Query OK, 0 rows affected (0.00 sec)

  6. 其它命令
    啓動:service mysqld start或systemctl start mysqld.service
    停止:service mysqld stop或systemctl stop mysqld.service
    重啓:service mysqld restart或systemctl restart mysqld.service
  7. 兩臺服務器都按照以上步驟安裝MySQL

第三步:主從配置

演示用兩臺全新MySql服務器:
mysql1:10.100.96.140 (主)
mysql2:10.100.96.141 (從)
配置主從,步驟如下:

  1. 在mysql1上創建複製賬號 repl
    CREATE USER 'repl'@'10.100.96.%' IDENTIFIED BY '123456';
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'10.100.96.%';

  2. 在mysql1上編輯 /etc/my.cnf 文件,增加以下配置:
    log_bin=mysql-bin
    server_id=140

    開啓二進制日誌和設置server_id(只能是數字,此處用IP地址後兩位),然後重啓mysqld,

  3. 獲取File 和 Position
    登錄mysql1 root賬號,執行“SHOW MASTER STATUS;”語句

    注:這裏的File和Position的值要保存起來,後面從數據庫執行需要用到
  4. mysql2上編輯 /etc/my.cnf 文件,增加以下配置:
    log_bin=mysql-bin
    server_id=141
    relay_log=/var/lib/mysql/mysql-relay-bin
    log_slave_updates=1
    read_only=1
    配置完成後,重啓mysqld。如果採用“主-主”結構,read_only爲可選配置

  5. 配置主從連接
    登錄mysql2 root賬號,執行以下語句,使得mysql2連接到mysql1,並重放其二進制日誌
    CHANGE MASTER TO MASTER_HOST='10.100.96.138',
    MASTER_USER='repl',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=154;
    執行啓動複雜命令:START SLAVE;
    執行成功後,再輸入“SHOW SLAVE STATUS\G;”檢查配置是否正確,如下所示:

    如果Slave_IO_State 爲空,Slave_IO_Running 和 Slave_SQL_Running 均爲 NO,表示複製並未運

  6. 常見處理:
    清除連接:reset slave all;
    如果主庫重啓,需執行1)stop slave;2)reset slave; 然後重新執行第5步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章