在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

相关推荐
?ccc?34 分钟前
MySQL主从复制与读写分离
数据库·mysql
行止62 小时前
MySQL主从复制与读写分离
linux·数据库·mysql
ChicagoTypewriter2 小时前
MySQL用户和授权
mysql
圈圈编码4 小时前
悲观锁和乐观锁
java·开发语言·sql·mysql
学习中的码虫4 小时前
MySQL提升
数据库·mysql
卡布奇诺-海晨6 小时前
MySQL的MVCC机制
数据库·mysql
秃头摸鱼侠7 小时前
MySQL查询语句(续)
数据库·mysql
睡觉待开机7 小时前
6. MySQL基本查询
数据库·mysql
weixin_470880269 小时前
MySQL体系架构解析(二):MySQL目录与启动配置全解析
数据库·mysql·面试·mysql体系架构·mysql bin目录
英英_10 小时前
MySQL 日志数据同步的详细教程
数据库·mysql