1. 下载glibc版的MySQL安装包

进入MySQL官网(https://www.mysql.com

点击“DOWNLOADS”

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

滑动到页面最下面,点击“MySQL Community Server”

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

点击“Looking for previous GA versions?”

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

选择要下载的版本

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

点击“No thanks, just start my download.”开始下载

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

2. MySQL二进制安装

2.1 环境准备

检查是否已经安装了MySQL或者是MariaDB,如果已经安装,则先把安装的卸载

rpm -qa |grep mysql

rpm -qa |grep mariadb

yum remove -y mariadb*

2.2 创建软件目录

mkdir -p /application

上传软件到此目录

2.3 解压并改名为mysql

tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql

ls -l mysql

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

2.4 修改环境变量

vim /etc/profile

在最后一行加入以下配置:

export PATH=/application/mysql/bin:$PATH

source /etc/profile

2.5 建立mysql用户和组(如果已有可忽略)

useradd -M -s /sbin/nologin mysql

2.6 创建相关目录并修改权限

mkdir -p /data/mysql

chown -R mysql.mysql /application/*

chown -R mysql.mysql /data/*

2.7 初始化数据库

进到MySQL的bin目录

cd /application/mysql/bin

方法一:

初始化数据,初始化管理员的临时密码

mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

方法二:

初始化数据,初始化管理员的密码为空

mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql

执行了方法一再执行方法二时,报错,如下:

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

报错原因:

在 /data/mysql 存在文件

解决:

\rm -rf /data/mysql/*

再次执行 mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

MySQL5.7新特性重要说明:

MySQL5.7开始,MySQL加入了全新的密码安全机制:

(1)初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)

(2)密码复杂度:长度,超过12位;复杂度,数字、字符、大小写字母四种混乱组合

(3)密码过期时间180天

注意:MySQL5.6和MySQL5.7初始化是有区别的,MySQL5.6初始化目录如下:

/application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/mysql

2.8 书写MySQL默认配置文件

cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql
server_id=1
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=3306 [\\d]>
EOF

2.9 配置启动脚本

cd /application/mysql/support-files/

./mysql.server start

cp mysql.server /etc/init.d/mysqld

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

2.10 使用systemd管理mysql

vim /etc/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

启动MySQL

systemctl start/stop/restart/status mysqld

2.11 在mysql系统外,使用mysqladmin设置密码

mysqladmin -u root -p password "123456"

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

3. 多实例的应用

3.1 准备多个目录

mkdir -p /data/330{7,8,9}/data

3.2 准备配置文件

cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=2
log_bin=/data/3307/mysql-bin
EOF

cat > /data/3308/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=3
log_bin=/data/3308/mysql-bin
EOF

cat > /data/3309/my.cnf <<EOF
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=4
log_bin=/data/3309/mysql-bin
EOF

3.3 初始化三套数据

mv /etc/my.cnf /etc/my.cnf.bak

mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/application/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/application/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/application/mysql

3.4 systemd管理多实例

cd /etc/systemd/system

cp mysqld.service mysqld3307.service

cp mysqld.service mysqld3309.service

cp mysqld.service mysqld3308.service

 

vim mysqld3307.service

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf

vim mysqld3308.service

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf

vim mysqld3309.service

ExecStart=/application/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf

3.5 授权

chown -R mysql.mysql /data/*

3.6 启动

systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service

3.7 验证多实例

netstat -lnp |grep 330

遇到如下报错:

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

解决方法:

yum install -y net-tools

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

mysql -S /data/3307/mysql.sock -e "select @@server_id"

mysql -S /data/3308/mysql.sock -e "select @@server_id"

mysql -S /data/3309/mysql.sock -e "select @@server_id"

CentOS7.5下安装 mysql5.7(glibc版)以及实现多实例

 

本文参考自:

(1)https://www.jianshu.com/p/dd7137c4efa5

(2)https://www.jianshu.com/p/e872bc12f583

相关文章:

  • 2021-09-25
  • 2022-01-03
  • 2021-08-14
  • 2022-01-21
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
  • 2022-01-13
猜你喜欢
  • 2022-01-08
  • 2022-01-02
  • 2021-09-24
  • 2021-12-25
  • 2022-01-08
  • 2022-01-03
相关资源
相似解决方案