MySQL-5.7主从搭建

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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永久设置。
[[email protected] ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=MySQL-Master
配置解析自己主机名
[[email protected] ~]# 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
~]# install -d -o mysql -g mysql /data/log

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

[r[email protected] ~]# 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的[email protected]‘localhost‘的密码在/root/.mysql_secret文件中。

三. 配置主从

1. 修改root密码

mysql> ALTER USER [email protected]‘localhost‘ IDENTIFIED BY ‘mysql_pass‘;

注意:mysql-5.7系列要先修改用户密码才能进行操作,提供安全性。

2. 修改root密码

master上的操作
分配slave权限给用户
mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON . TO [email protected]‘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主从搭建的主要内容,如果未能解决你的问题,请参考以下文章

通过 mysqldump 搭建基于 gtid MySQL 5.7 主从复制

在linux7上搭建mysql 5.7 的主从复制

Centos7.5 生产环境搭建MySQL 5.7主从

Docker 中搭建 MySQL 主从复制

MySQL主从复制原理及搭建全过程 񥽫

MySQL主从复制原理及搭建全过程 𦓮