Linux(CentOS) 安装MySQL 5.7

时间:2021-07-15 05:15:29

#MySQL简介

(1)MySQL行业主流版本

   - 5.6

   - 5.7

(2)企业版本选择

  - Oracle:   MySQL官方版本

  - RedHat:  MariaDB

  - Percona: PerconaDB

(3)版本选择

  - 一般选择 5.6 或 5.7

  - GA

  - 6-12月的产品版本

#下载MySQL

  - From官网: https://dev.mysql.com/downloads/

  - 本文选择: https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

#MySQL 安装

  - OS版本

[[email protected] ~]# uname -a
Linux CentOS-Docker 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

  - 卸载已有的数据库(如果有,避免相互影响)

yum remove mariadb-libs-5.5.60-1.el7_5.x86_64

   - 安装必要的软件包

yum install -y libaio-devel ncurses-devel

  - 创建安装目录

mkdir -p /app/

   - 解压&重命名

tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql

   - 修改环境变量

vim /etc/profile 
#末尾添加
export PATH=/app/mysql/bin:$PATH

#生效
source /etc/profile

  - 新增mysql用户

useradd mysql

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

 mkdir /data/mysql -p 
 chown -R mysql:mysql /app/*
 chown -R mysql:mysql /data/*

   - 初始化数据库

#清空/data/mysql中的数据,有数据会报错
rm -rf /data/mysql/*
#初始化数据和管理员的临时密码
mysqld --initialize  --user=mysql --basedir=/app/mysql --datadir=/data/mysql
#没有[ERROR]就说明成功了
#5.7新特性重要说明:
#从5.7开始,MySQL加入了全新的 密码的安全机制:
#1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
#2.密码复杂度:字符混乱组合
#3.密码过期时间180天
#初始化数据,初始化管理员的密码为空
mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql

Linux(CentOS) 安装MySQL 5.7

 

    - 编辑配置文件

vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=3306 [\d]>

   - 启动MySQL

 cd /app/mysql/support-files
 ./mysql.server start

   - 使用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=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
#systemctl start/stop/restart/status mysqld

   - 管理密码

mysqladmin -uroot -p password 123

   - 查询

select user,authentication_string,host from mysql.user;

 

 #补充

  - 5.6 vs 5.7

#初始化的区别
#5.6
mysql_install_db  --user=mysql --datadir=/application/mysql/data --basedir=/application/mysql
#5.7
mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql
#密码策略
#密码字段
authentication_strings