在CenteOs7上安装mysql8.0(Super详细版)

在CenteOs7上安装mysql8.0

为什么用Mysql8.0?

目前很多服务器上部署的都是5.7版本,但是Mysql目前都出到9.0了,有的人说新的不稳定等等...但是8.0以上版本性能有了质的飞跃,我觉得可以尝试。性能才是真理。当然老系统运行稳定就不建议升级了。

如何下载

下载地址

mysql官网下载地址

需要提前准备

bash 复制代码
#openssl
yum install openssl-devel -y
#net-tools
sudo yum install perl net-tools

下载步骤


服务器上安装

如何上传到服务器?

1、可以在本地下载好后通过文件传输。这里就不细讲了。

2、直接通过wget下载到服务器

通过wget下载到服务器并解压

bash 复制代码
 #创建文件夹
 mkdir /usr/local/mysql
 #进入创建的文件夹
 cd /usr/local/mysql
 #通过wget下载文件
 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.38-1.el7.x86_64.rpm-bundle.tar

这里我们下载的时候捆绑包。我们先解压。

bash 复制代码
tar -xvf mysql-8.0.38-1.el7.x86_64.rpm-bundle.tar

解压后得到如下安装包

开始安装

这里的安装顺序我们按照官方文档给的来,依次安装防止出错。当然有些是非必须的。

非必须安装

bash 复制代码
rpm -ivh mysql-community-libs-compat-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.26-1.el8.x86_64.rpm
rpm -ivh mysql-community-test-8.0.26-1.el8.x86_64.rpm

如果全部安装执行顺序

bash 复制代码
rpm -ivh mysql-community-common-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-plugins-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-embedded-compat-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.38-1.el7.x86_64.rpm  --nodeps --force
rpm -ivh mysql-community-libs-compat-8.0.38-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.38-1.el7.x86_64.rpm  --nodeps --force
rpm -ivh mysql-community-icu-data-files-8.0.38-1.el7.x86_64.rpm  --nodeps --force
rpm -ivh mysql-community-debuginfo-8.0.38-1.el7.x86_64.rpm  --nodeps --force
rpm -ivh mysql-community-devel-8.0.38-1.el7.x86_64.rpm  --nodeps --force
rpm -ivh mysql-community-server-8.0.38-1.el7.x86_64.rpm  --nodeps --force

安装完后,启动mysql

使用"systemctl"检测mysqld服务状态:

这个时候状态一般是inactive(不活动的)

bash 复制代码
systemctl status mysqld

启动mysql服务:

bash 复制代码
systemctl start mysqld

再次查看mysqld服务的状态:

bash 复制代码
systemctl status mysqld

设置系统启动时自动启动mysql服务:

bash 复制代码
systemctl enable --now mysqld

修改mysql密码

查看mysql root的原始密码:

bash 复制代码
cat /var/log/mysqld.log

修改密码

这里我们先用原始密码登录进去,执行命令后要求数据密码,我们将初始密码输入进去。登录成功后修改密码。

bash 复制代码
mysql -uroot -p

大家先按照这个去修改,因为如果首次登录不修改密码,是不能进行任何操作的。而且8.0的密码策略有点变态啊,一般的密码无法满足要求,这里的话我们就直接copy下面的代码,先将密码修改了,接着我们再去修改密码设置策略。

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '!QAZ2wsx';

接着我们去修改密码的强度为低就可以了

bash 复制代码
set global validate_password.policy=LOW;

然后我们通过ALTER USER 命令将密码修改成自己想要的就好了。

验证修改后的密码进行登录

允许用户远程登录

这里我们需要将root用户允许远程登录

bash 复制代码
#查看root账号的ip访问权限(执行结果:localhost和127.0.0.1,是无法从外部连接的)
SELECT host FROM mysql.user WHERE User = 'root';

修改允许远程登录,并刷新配置

不建议这么做,我们一般是创建一个新的用户,并在业务环境中只单独对这个用户赋予某个数据库的权限。

bash 复制代码
#推荐使用
ALTER USER 'root'@'localhost' IDENTIFIED BY '!QAZ2wsx';
#修改
UPDATE user SET Host = '%' WHERE User = 'root';
#刷新
FLUSH PRIVILEGES;

线上服务器请开启3306端口允许。

在服务器上一定要使用复杂密码!避免数据库被攻击。数据安全是大事!

bash 复制代码
# 这里是添加一个新用户允许远程登录。
CREATE USER 'my_name'@'%' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON *.* TO 'my_name'@'%';
FLUSH PRIVILEGES;
bash 复制代码
#查询服务器是否开启3306端口
sudo firewall-cmd --query-port=3306/tcp
bash 复制代码
#开启3306端口
 sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
bash 复制代码
#立即刷新
sudo firewall-cmd --reload
bash 复制代码
#再次查看状态
sudo firewall-cmd --query-port=3306/tcp

由于我的系统是虚拟上安装的,导致部分依赖,需要自己安装。

同时希望大家可以反馈一下安装过程遇到的问题,我这边可以回答并更新这篇文章。

bash 复制代码
systemctl restart mysqld

参考文章

centos7 安装mysql8

相关推荐
xiaok21 小时前
GROUP BY进阶用法
mysql
李慕婉学姐21 小时前
【开题答辩过程】以《基于Android的健康助手APP的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
android·java·mysql
qq_124987075321 小时前
基于springboot健康养老APP的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·微信小程序·毕业设计
亚林瓜子1 天前
mysql命令行手动导入csv数据到指定表
数据库·mysql·gui·csv·cli·db·import
一分半心动1 天前
lnmp架构 mysql数据库Cannot assign requested address报错解决
linux·mysql·php
ChristXlx1 天前
Linux安装mysql(虚拟机适用)
linux·mysql
瀚高PG实验室1 天前
timestampdiff (MYSQL)函数在Highgo DB中的写法
数据库·mysql·瀚高数据库
还是鼠鼠1 天前
SQL语句执行很慢,如何分析呢?
java·数据库·mysql·面试
云和数据.ChenGuang1 天前
批量给100台服务器装系统,还要完成后续的配置和软件部署
运维·服务器·开发语言·mysql
程序员卷卷狗1 天前
为什么MySQL默认使用可重复读RR?深入解析binlog与隔离级别的关系
数据库·mysql