天天看點

centerOs linux7下mysql5.7.22版本的主從複制(一主兩從)配置步驟。(一步步操作,必成功)一:MySQL安裝二:克隆多台虛拟機三:MySQL 主從複制配置(一主兩從)

一:MySQL安裝

1、下載下傳安裝包

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
           

2、将mysql安裝到/usr/local/mysql下

# 解壓
tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
# 移動
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/
# 重命名
mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
           

3、建立data目錄

mkdir /usr/local/mysql/data
           

4、建立mysql使用者、mysql使用者組

# mysql使用者組
groupadd mysql
# mysql使用者
useradd mysql -g mysql
           

5、将/usr/local/mysql的所有者及所屬組改為mysql

chown -R mysql.mysql /usr/local/mysql
           

6、初始化mysql

/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
#如果有警告之類的忽略就行,隻要沒有error或者faile就代表初始化成功了
# 如果出現以下錯誤, 則執行下面的指令來安裝numactl,然後再重新執行上面的mysqld指令
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
yum -y install numactl
           

7、編輯my.cnf

[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密碼驗證
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
           

8、開啟服務

# 将mysql加入服務
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 開機自啟
chkconfig mysql on
# 啟動mysql服務
service mysql start
           

9、設定密碼

# 登入(由于/etc/my.cnf中設定了取消密碼驗證,是以此處密碼任意)
/usr/local/mysql/bin/mysql -u root -p
# 操作mysql資料庫
>use mysql;
# 修改密碼
>update user set authentication_string=password('你的密碼') where user='root';
>flush privileges;
>exit;
           

10、将/etc/my.cnf中的skip-grant-tables删除,然後重新開機mysql

service mysql start
           

11、登入再次設定密碼(不知道為啥如果不再次設定密碼就操作不了資料庫了)

/usr/local/mysql/bin/mysql -u root -p
>ALTER USER 'root'@'localhost' IDENTIFIED BY '修改後的密碼';
>exit;
           

12、允許遠端連接配接

/usr/local/mysql/bin/mysql -u root -p
>use mysql;
>update user set host='%' where user = 'root';
>flush privileges;
>eixt;
           

13、添加快捷方式

ln -s /usr/local/mysql/bin/mysql /usr/bin
           

14、建立資料庫

CREATE DATABASE `testdb` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 永久禁用防火牆(需要重新開機虛拟機)
systemctl disable firewalld.service
reboot
# 在虛拟機上檢視一下IP位址
ifconfig
           

15、遠端連接配接mysql

mysql -h 192.168.249.135 -u root -p
> show databases;
           

二:克隆多台虛拟機

1、克隆多台虛拟機: VMWare Fusion 虛拟機–> 管理->克隆->建立完整克隆

必須是建立完成的克隆

2、這裡克隆兩次,即總共3台

克隆完成之後需要修改第二台(192.168.249.136)和第三台(192.168.249.137)的mysql的uuid值,随便修改一下即可隻要保證三台機器的uuid不同即可

三:MySQL 主從複制配置(一主兩從)

1、master操作(192.168.249.135)

①、修改master上的mysql配置檔案

          vim /etc/my.cnf

[mysqld]
# servier-id 每台mysql都要不同
server-id=1
log-bin=mysql-bin
           

②、在Master建立賬戶并授權Slave

# 授權一個使用者名為rep,密碼為root
# *.*代表所有庫的所有表(可以指定庫.表)
# ip代表隻能該ip段下有權限通路, 即配置從伺服器的前兩個ip段即可,我的兩個slave都是172.16段
mysql> grant replication slave on *.* to 'rep'@'%' identified by 'root';
           

③、重新開機mysql服務

service mysql restart
           

④、檢視master狀态

# File 和 Position 兩個字段比較重要
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      588|              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
           
centerOs linux7下mysql5.7.22版本的主從複制(一主兩從)配置步驟。(一步步操作,必成功)一:MySQL安裝二:克隆多台虛拟機三:MySQL 主從複制配置(一主兩從)

2、配置slave1

①、修改/etc/my.cnf

[mysqld]
server-id=2
log-bin=relay-bin
           

②、重新開機mysql

service mysql restart
           

③、slave指定master資訊

# 如果之前已經配置過主從複制,需要重新複制需要先停止slave,然後再change master
mysql> stop slave;
#master_log_file='mysql-bin.000001':這是master庫狀态欄裡面的File             
#master_log_pos=588:這是master庫狀态欄裡面的Position
mysql> change master to
 master_host='192.168.249.135',
 master_port=3306,
 master_user='rep',
 master_password='root',
 master_log_file='mysql-bin.000001', 
 master_log_pos=588;
           

④、啟動slave

mysql> start slave;

mysql> show slave status\G;
           
centerOs linux7下mysql5.7.22版本的主從複制(一主兩從)配置步驟。(一步步操作,必成功)一:MySQL安裝二:克隆多台虛拟機三:MySQL 主從複制配置(一主兩從)

3、配置slave2

修改/etc/my.cnf,其它步驟和slave1操作完全一樣

[mysqld]
server-id=3
log-bin=relay-bin
           

4、測試主從複制

# 在master上建立一個資料庫
mysql> create database testdb;
# 在slave1和slave2上看testdb是否存在
mysql> show databases;
           
centerOs linux7下mysql5.7.22版本的主從複制(一主兩從)配置步驟。(一步步操作,必成功)一:MySQL安裝二:克隆多台虛拟機三:MySQL 主從複制配置(一主兩從)
centerOs linux7下mysql5.7.22版本的主從複制(一主兩從)配置步驟。(一步步操作,必成功)一:MySQL安裝二:克隆多台虛拟機三:MySQL 主從複制配置(一主兩從)
centerOs linux7下mysql5.7.22版本的主從複制(一主兩從)配置步驟。(一步步操作,必成功)一:MySQL安裝二:克隆多台虛拟機三:MySQL 主從複制配置(一主兩從)

繼續閱讀