在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

相关推荐
_孤傲_35 分钟前
快速掌握 MySQL 语法
数据库·后端·mysql
为思念酝酿的痛3 小时前
MySQL的操作
数据库·mysql
Umi·4 小时前
MySQL库表操作
数据库·mysql
星光开发者5 小时前
基于springboot智慧草场牛羊管理系统-计算机毕设【课程设计】50360
vue.js·spring boot·后端·mysql·php·课程设计·express
猫咪很可爱6 小时前
MySQL 视图与只读用户:安全查询的完整实践指南
数据库·sql·mysql
猫咪很可爱6 小时前
MySQL 5.7 备份恢复后函数与存储过程丢失:原因分析与正确备份姿势
数据库·mysql·bug·shell
秦时明月之君临天下8 小时前
MySQL purge 参数详解:innodb_purge_threads 与 innodb_purge_batch_size
数据库·mysql·1024程序员节
努力努力再努力wz9 小时前
【C++ 高阶系列】C++ 高性能网络编程:当 Reactor 遇见协程:从 epoll 回调到异步 MySQL,彻底打通任务挂起与恢复
网络·c++·mysql
这个DBA有点耶9 小时前
测试全绿,上线三周数据没入账——那个95%的兼容度报告,漏掉的是边界
数据库·mysql·架构
gf132111110 小时前
python_高德地图驾车时长查询
数据库·python·mysql