Linux(CentOS) 安装MySQL 5.7
#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版本
[root@CentOS-Docker ~]# 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
- 编辑配置文件
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