centos7安装mysql5.7(rpm安装版)

1. 下载mysql5.7的rpm安装包

rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!!

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

2. 安装依赖

2.1. 查看linux上是否已经安装了mysql,有则卸载。

一般centos7默认安装了mariadb,这里把它卸载。
查看:

rpm -qa|grep mariadb

卸载:

rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

2.2. 安装mysql5.7所需要的依赖

yum install libaio

yum install perl

yum install net-tools

3. 创建mysql用户

cat /etc/group |grep mysql  #cat /etc/passwd |grep mysql //检查mysql用户及组是否存在,如果没有执行下面命令

groupadd mysql //创建组

useradd -r -g mysql mysql //创建用户并把该用户加入到组mysql,这里的 -r是指该用户是内部用户,不允许外部登录

4. 安装mysql5.7

4.1. 解压mysql5.7安装包

 tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

4.2. 安装mysql5.7

rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm

4.3. 查看mysql5.7的状态,没有启动则把mysql启动

4.3.1 查看mysql启动状态

service mysqld status

出现下面这个death就是没有启动,新装的第一次是没有启动的。
QQ202008111507312x.png
active(running)代表启动成功

4.3.2 启动mysql

service mysqld start

4.4. 修改密码

查看临时密码:得知临时密码就是如图
QQ202008111512232x.png

4.4.1 用临时密码登录mysql

mysql -uroot –p

4.4.2 修改成新的密码

密码必须符合长度大于等于8,且必须含有数字,小写或大写字母,特殊字符

set password = password("pa5lrK##d8");

4.4.3 修改密码报错ERROR 1819 (HY000)

如果修改密码报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

密码的长度是由validate_password_length决定的,但是可以通过以下命令修改

set global validate_password_length=4;

validate_password_policy决定密码的验证策略,默认等级为MEDIUM(中等),可通过以下命令修改为LOW(低)

set global validate_password_policy=0;

4.4.4 如果第一次登陆报错

image.png
1.停止mysql服务

systemctl stop mysqld.service

2.修改配置文件无密码登录

vi  /etc/my.cnf

在最后加上
skip-grant-tables
保存
3.启动mysql

systemctl  start  mysqld.service

4.登录mysql

mysql -u root

注意这里不要加-p
5.修改密码,mysql5.7用此语法

use mysql;
update mysql.user set authentication_string=password('123456') where user='root' ;

6.回到第二部把刚加的那句删掉
保存,重启mysql就可以了

4.5. 开启远程连接,允许远程连接数据库

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pa5lrK##d8' WITH GRANT OPTION;

4.6. 配置mysql的配置文件my.cnf(用默认的也行,个人觉得配置一下好一些)

打开配置文件my.cnf

vi /etc/my.cnf

在[mysqld]下面配置几行

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

lower_case_table_names=1       #配置表名不区分大小写 1:不区分大小写 0:区分大小写  这行必须配置 默认表名是区分大小写的,不利于开发

character-set-server=utf8          #设置为默认编码为utf8

init_connect='SET NAMES utf8'

max_connections=1024             #设置最大连接数

重启mysql 重启配置才能生效

service mysqld restart

4.7. 防火墙开启端口

到这其实mysql已经安装和配置好,但是centos7的开了防火墙,外面还是访问不到mysql的,所以还要开端口3306(或者把防火墙关掉也行,生产环境勿用)
关闭防火墙

systemctl stop firewalld

4.8. 创建数据库用户和授权

CREATE DATABASE testDb CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER 'test'@'%' IDENTIFIED BY 'pa5lrK##d8'; 
                 
GRANT ALL ON testDb.* TO 'pay'@'%'; 

参考
https://www.cnblogs.com/helf/p/11244711.html
https://www.cnblogs.com/wade-lt/p/8934251.html