一. 系统信息

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 ~]# 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

[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
server_id = 1
log_bin = /data/mysql/bin_log

[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的数据目录,事先已经创建,如果不同请自行修改。3. 配置slave时要注意server_id一定要与master不同,否则会失败。

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. 配置主从操作

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/