MySQL-5.7主從搭建
Linux版本:6.8
MySQL版本信息: /mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
兩臺機器IP:
192.168.196.220
192.168.196.221
說明:
mysql的安裝目錄:/opt/mysql
mysql的數據路面:/data/mysql
二. 安裝MySQL-5.7
1. 設置hostname
hostname當前生效。
~]# hostname MySQL-Master
hostname永久設置。
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=MySQL-Master
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 MySQL-Master
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.196.220 MySQL-Master
192.168.196.221 MySQL-Slave
集群中的主機一定要使其能夠相互解析,可以通過DNS解析,也可以通過/etc/hosts文件進行。如果主機臺數不多我們一般都會選用hosts文件進行解析。因為DNS要依賴於外部服務。
2. 下載安裝包
~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
3. 展開mysql tarball
~]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /opt/
opt]# ln -sv mysql-5.7.20-linux-glibc2.12-x86_64 mysql
4. 創建用戶,以及數據目錄和日誌目錄
~]# useradd -r mysql
~]# install -d -o mysql -g mysql /data/mysql
5. 安裝需要的的libnuma.so.1動態庫
~]# yum -y install numactl
6. 將mysql二進制文件加入到PATH路徑中
~]# vim /etc/profile.d/mysql.sh
export PATH=/opt/mysql/bin:$PATH
7. 配置文件my.cnf
[root@localhost ~]# cat /etc/my.cnf
[mysqld]
log-error=/data/log/mysqld.log
pid-file=/data/mysql/mysqld.pid
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_file_per_table = ON
skip_name_resolve
[mysqld_safe]
log-error=/data/log/mysqld.log
pid-file=/data/mysql/mysqld.pid
[mysql]
socket=/data/mysql/mysql.sock
註意:1. /etc/my.cnf中/data/log為mysql的日誌目錄,事先已經創建,如果不同請自行修改。 2. /etc/my.cnf中/data/mysql為mysql的數據目錄,事先已經創建,如果不同請自行修改
8. 拷貝啟動腳本
~]# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
註意:
修改datadir和basedir目錄的值:
basedir=/opt/mysql
datadir=/data/mysql
因為mysql的安裝目錄為/opt/mysql。mysql的數據目錄為/data/mysql
9. 創建mysql數據
~]# mysql_install_db --no-defaults --datadir=/data/mysql --user=mysql --basedir=/opt/mysql
註意:--no-defautls會取消mysql_instal_db默認讀取路徑,不加會創建失敗。而且一定要緊隨mysql_install_db之後,否則不會生效。
10. 設置開機自啟啟動服務
~]# chkconfig --add mysqld
~]# service mysqld start
11. 測試連接數據庫
~]# mysql -p"g2!vaDpB16it"
註意:mysql的root@‘localhost‘的密碼在/root/.mysql_secret文件中。
三. 配置主從
1. 修改root密碼
mysql> ALTER USER root@‘localhost‘ IDENTIFIED BY ‘mysql_pass‘;
註意:mysql-5.7系列要先修改用戶密碼才能進行操作,提供安全性。
2. 修改root密碼
master上的操作
分配slave權限給用戶
mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON . TO repluser@‘192.168.%‘ IDENTIFIED BY ‘replpass‘;
查看二進制
mysql> SHOW MASTER STATUS;
+----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| bin_log.000001 | 711 | | | |
+----------------+----------+--------------+------------------+-------------------+
slave上的操作:
配置同步的master主機:
mysql> CHAMGE MASTE TO MASTER_HOST=‘192.180.196.220‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘replpass‘,MASTER_LOG_FILE=‘bin_log.000001‘,MASTER_LOG_POS=711;
啟動slave進程:
mysql> start slave;
查看slave是否正常啟動:
mysql> show slave status;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
這兩個參數為yes說明啟動正常
查看slave同步數據
mysql> SHOW DATABASES;
並查看是否具有master上的數據。
參考
配置時中途出現錯誤都是查看的官網,官網網址為: https://dev.mysql.com/doc/refman/5.7/en/
MySQL-5.7主從搭建