Centos7环境下安装Mysql8.0详细教程

如下图,先下载在centos系统下MySQL8.0的安装包https://downloads.mysql.com/archives/community/
image.png
MySQL8.0下载链接:
https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar
通过shell工具把下载的安装包上传到centos服务器上,如下图:
image.png
我这里把MySQL8安装包上传到/usr/local/mysql8目录下
image.png
进入/usr/local/mysql8,运行以下命令解压缩安装包

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

得到如下几个rpm包:
image.png
卸载自带的mariadb
查询已经安装的mariadb

rpm -qa | grep mariadb

'xxxx’代表 rpm -qa | grep mariadb 展示出来所有名字,有多个,则重复删除多次

rpm -e --nodeps 文件名

image.png
务必删除干净

二、准备安装环境

依次运行如下命令:

yum update -y

yum install -y libaio
yum install -y net-tools
yum install openssl-devel.x86_64 openssl.x86_64 -y

yum -y install autoconf
yum install perl.x86_64 perl-devel.x86_64 -y
yum install perl-JSON.noarch -y
yum install perl-Test-Simple -y

以上命令是解决安装mysql8时的依赖环境问题。(如果以上命令运行失败可能会影响接下来的安装)

三、安装MySQL8

在/usr/local/mysql8目录下,依次运行以下几个命令,安装MySQL8,注意如下命令运行顺序不能颠倒,必须严格按照以下顺序运行:

rpm -ivh mysql-community-common-8.0.35-1.el7.x86_64.rpm   
rpm -ivh mysql-community-client-plugins-8.0.35-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.35-1.el7.x86_64.rpm 
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.35-1.el7.x86_64.rpm  

image.png
设置配置文件:
编辑/etc/my.cnf文件,可以为MySQL设置如下参数(按实际需求选择即可)

[mysqld]
# 设置 MySQL 服务运行的端口号
port = 3306
# 指定 MySQL 数据库的默认字符集
character-set-server=utf8mb4
# 允许外部访问
bind-address=0.0.0.0

# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'

# 设置 MySQL 允许访问的最大连接数
max_connections = 1000

# 指定MySQL服务器存储数据文件的目录
datadir=/var/lib/mysql

# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1

# 事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED

# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

其他参数配置请查看:https://blog.csdn.net/qq_44723773/article/details/131712839
最好是关闭centos的防火墙

   systemctl status firewalld
    systemctl stop firewalld
    systemctl disable firewalld

也可以选择开放3306端口

目录授权:

chown -R mysql:mysql /var/lib/mysql/

启动mysql:

systemctl start mysqld.service

查看MySQL8的状态:

systemctl status mysqld.service

image.png
设置开机自启动:

systemctl enable mysqld

启动mysql后会生成一个临时密码,使用此命令可以查询到临时密码,见下图

grep “A temporary password” /var/log/mysqld.log

image.png
使用此临时密码可以登录MySQL8

如果没有成功得到临时密码也可以在/etc/my.cnf配置文件的末尾添加skip-grant-tables 跳过密码
image.png
保存my.cnf 然后重启mysql

systemctl restart mysqld

这样就可以跳过密码验证直接登录成功
image.png
在mysql中运行以下SQL语句:

update mysql.user set authentication_string = '' where user = 'root';

运行以上SQL就是把MySQL的root用户密码设置为空,然后exit退出。

image.png
把root密码设置为空之后,我们需要将上步中的 skip-grant-tables 配置删除, 然后重启 MySQL 服务即可。

编辑/etc/my.cnf 配置文件,删除上一步加在末尾的 skip-grant-tables 配置,然后保存退出
然后 systemctl restart mysqld 重启MySQL服务

接下来我们就可以使用空密码登录MySQL了。
image.png
为root用户设置新的密码:

# 修改密码,注意密码强度校验,这里把密码设置为 Ab%123456
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Ab%123456';
# 刷新权限
FLUSH PRIVILEGES;

image.png
再次登录就需要密码了
image.png
设置允许root远程登录

update mysql.user set host='%' where user='root';
flush privileges;

在navicat上就可以登录了
image.png

参考链接:
https://blog.csdn.net/weixin_42326851/article/details/123984601
https://blog.csdn.net/qq_41311691/article/details/134755870

如果我的文章对您有帮助,还请您多多支持我。支付宝帮忙扫一下吧
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐