记录一下自己在 CentOS7 下 rpm 安装 MySQL8.0.16 的过程。

一、准备工作

1. 下载MySQL所需要的安装包

MySQL官网 下载,上传至 CentOS 系统 /usr/local/MySQL 目录下,当然你也可以使用 wget 命令直接下载至 CentOS,此处使用的 8.0.16 版本。

# 你想要的版本
Product Version: 8.0.16
# CentOS选择Red Hat Enterprise Linux / Oracle Linux
Operating System:OS Version: Red Hat Enterprise Linux / Oracle Linux
# CentOS7 64位选择
OS Version: Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)

然后下载rpm包(RPM Bundle)。

2. 检查是否存在自带mariadb

CentOS7 开始不自带 MySQL,替换成了 mariadb,但是我们安装 MySQL 的时候会冲突,所以需要先卸载 mariadb。

# 查找是否存在自带mariadb
rpm -qa | grep mariadb # 如果存在则卸载, 比如我查找出来的名称为mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

3. 检查是否安装过MySQL

# 检查是否安装过mysql
rpm -qa | grep mysql # 如果存在则卸载, 比如名称为mysql-libs-5.1.52.x86_64
rpm -e mysql-libs-5.1.52.x86_64 --nodeps

4. 检查mysql组及用户是否存在,不存在则创建

# 检查
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql # 创建
groupadd mysql
useradd -r -g mysql mysql

5. 检查是否开启MySQL使用端口

我使用的默认端口3306。

# 查看想开的端口是否已开,若此提示FirewallD is not running, 表示为不可知的防火墙 需要查看状态并开启防火墙, 如果是云服务器还需要去控制台配置安全组访问
firewall-cmd --query-port=3306/tcp # 开启端口, success代表成功
firewall-cmd --add-port=3306/tcp --permanent
# 刷新配置, 使配置生效
firewall-cmd --reload

二、安装及配置MySQL

1. 解压

cd /usr/local/mysql

# 解压
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar # 查看一下解压出来的文件
ll
#结果
-rw-r--r--. 1 7155 31415 33432660 5月 3 2019 mysql-community-client-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 588520 5月 3 2019 mysql-community-common-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 5712552 5月 3 2019 mysql-community-devel-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 24493344 5月 3 2019 mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 3127296 5月 3 2019 mysql-community-libs-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 2177156 5月 3 2019 mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 422672748 5月 3 2019 mysql-community-server-8.0.16-2.el7.x86_64.rpm
-rw-r--r--. 1 7155 31415 114848996 5月 3 2019 mysql-community-test-8.0.16-2.el7.x86_64.rpm

2. 通过rpm命令安装common

# 命令
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm # 打印内容
警告:mysql-community-common-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-8.0.16-2.e################################# [100%]

3. 通过rpm命令安装libs

# 命令
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm # 打印内容
警告:mysql-community-libs-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-libs-8.0.16-2.el7################################# [100%]

4. 通过rpm命令安装client

# 命令
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm # 打印内容
警告:mysql-community-client-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-client-8.0.16-2.e################################# [100%]

5. 通过rpm命令安装server

如果这里提示缺少net-tool依赖,那么 yum -y install net-tools* 安装再执行

# 命令
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm # 打印内容
警告:mysql-community-server-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-server-8.0.16-2.e################################# [100%]

6. 查看MySQL安装包

# 命令
rpm -qa | grep mysql # 打印内容
mysql-community-libs-8.0.16-2.el7.x86_64
mysql-community-common-8.0.16-2.el7.x86_64
mysql-community-client-8.0.16-2.el7.x86_64
mysql-community-server-8.0.16-2.el7.x86_64

7. 初始化MySQL数据库

该命令会在 /var/log/mysqld.log 生成随机密码。

mysqld --initialize

8. 配置用户组

配置MySQL数据库目录所属的用户和组,默认MySQL的配置文件路径为: /etc/my.cnf,如果有需要可以修改配置文件。

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

9. 启动MySQL数据库

# 启动mysqld.service
systemctl start mysqld # 查看状态, 显示有 running 代表启动成功
systemctl status mysqld

10. 修改数据库密码

# 查看数据库密码
cat /var/log/mysqld.log | grep password # 打印内容, 其中4M4pSDfcr=9o就是数据库密码
2020-04-03T14:34:28.837144Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 4M4pSDfcr=9o
# 使用查询到的密码登录MySQL
mysql -u root -p'4M4pSDfcr=9o' # 登录到MySQL之后修改密码为自定义密码(我设置为123456), 这个设置还和5.7版本不同呢
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; # 使用`exit;`退出MySQL后使用自定义密码重新登录

11. 创建用户并授权远程登录

此处不能使用 5.7 版本的方式,不然会报错。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'SunnyBear'@'%' IDENTIFIED BY '123456';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '123456'' at line 1

8.0版本需要使用如下方式,和 Oralce 的创建授权类似,先创建用户再赋予权限。

因为正常开发一般 root 用户不允许远程登录,所以我们创建一个 SunnyBear 用户,赋予使用 sunny 数据库(已经使用命令创建好)的权限。

# 先创建一个用户
mysql> CREATE USER 'SunnyBear'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec) # 授权
# 其中sunny.*代表赋予sunny数据库所有操作权限, 如果想赋予所有数据库权限, 可设置为*.*
# 其中'SunnyBear'@'%'代表允许SunnyBear用户在任何ip登录, 当然也可以指定ip, 例如'用户名称'@'ip地址'
mysql> GRANT ALL PRIVILEGES ON sunny.* TO 'SunnyBear'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec) # 刷新权限
FLUSH PRIVILEGES;

配置成功之后可以使用连接工具尝试连接,我这里使用的是 Navicat,至此,单机版 MySQL 安装配置完成。

12. 一些命令

# 启动mysql服务
systemctl start mysqld.service # 停止mysql服务
systemctl stop mysqld.service # 重启mysql服务
systemctl restart mysqld.service # 查看mysql服务当前状态
systemctl status mysqld.service # 设置mysql服务开机自启动
systemctl enable mysqld.service # 停止mysql服务开机自启动
systemctl disable mysqld.service

都读到这里了,来个 点赞、评论、关注、收藏 吧!

文章作者:IT王小二

首发地址:https://www.itwxe.com/posts/79382061/

版权声明:文章内容遵循 署名-非商业性使用-禁止演绎 4.0 国际 进行许可,转载请在文章页面明显位置给出作者与原文链接。

Linux(CentOS7)下rpm安装MySQL8.0.16的更多相关文章

  1. [linux]centos7.4上安装MySQL-8.0.11【完美安装】

    版本声明 centos7.4 MySQL-8.0.11 1.我用的阿里云的虚拟主机,刚从windows换到linux,需要装下常用工具 #安装下sz rz常用到上传下载的命令 yum install ...

  2. [Linux]centOS7下RPM安装Perl

    1.下载rpm依赖包,依照顺序安装. perl-parent-0.225-244.el7.noarch   perl-HTTP-Tiny-0.033-3.el7.noarch   perl-podla ...

  3. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  4. linux使用glibc版本安装mysql8.0.12

    1.前言 使用yum安装虽然很方便,但是如果要是在没有公网的环境下,是没有办法使用yum源的.所以我们可以使用mysql提供的glibc版本的安装包,进行安装. 但是在安装之前,一定要将以前的版本删除 ...

  5. Linux(CentOS7)下Nginx安装

    记录一下 Linux(CentOS7) 下 Nginx 安装过程 一.准备工作 版本说明: Linux版本:CentOS 7 64位 Nginx版本:nginx-1.20.0 1. 下载安装文件 采用 ...

  6. centos7下编译安装php-7.0.15(PHP-FPM)

    centos7下编译安装php-7.0.15(PHP-FPM) 一.下载php7源码包 http://php.net/downloads.php 如:php-7.0.15.tar.gz 二.安装所需依 ...

  7. CentOS7下编译安装redis-5.0.9

    CentOS7下编译安装redis-5.0.9 本文地址http://yangjianyong.cn/?p=171转载无需经过作者本人授权 下载redis #code start wget https ...

  8. Linux Centos7.2 编译安装PHP7.0.2

    操作环境: 1.系统:Centos7.2 2.服务:Nginx 1.下载PHP7.0.2的安装包解压,编译,安装: $ cd /usr/src/ $ wget http://cn2.php.net/d ...

  9. Linux(CentOS-8)安装MySQL8.0.11

    CentOS安装MySQL8.0.11 总的思路就是:安装MySQL,编写配置文件,配置环境变量,成功开启服务,登陆并修改ROOT密码 开启远程访问的思路就是:授权用户所有IP都可以访问,系统的数据库 ...

随机推荐

  1. 2、ASP.NET Core中服务的生命周期

    ASP.NET Core支持依赖注入软件设计模式,它允许在不同的组件中注入我们的服务,并且控制服务的初始化.有些服务可以在短时间内初始化,并且只能在某个特别的组件,以及请求中才能用到:而还有一些服务, ...

  2. 一次错误使用 go-cache 导致出现的线上问题

    话说一个美滋滋的上午, 突然就出现大量报警, 接口大量请求都响应超时了. 排查过程 查看服务器的监控系统, CPU, 内存, 负载等指标正常 排查日志, 日志能够响应的结果也正常. request.l ...

  3. junit+maven单元测试

    一.概念 junit是一个专门测试的框架 集合maven进行单元测试,可批量测试类中的大量方法是否符合预期 二.作用:单元测试:测试的内容是类中的方法,每一个方法都是独立测试的.方法是测试的基本单位. ...

  4. 功能:Java8新特性steam流

    Java8新特性steam流 一.包装数据类型 @Test public void main22() { List<Integer> list = new ArrayList<Int ...

  5. 怎样用SQL修改某个字段的部分内容

    方法:update dede_addonarticle set body = replace(body,'#p#分页标题#e#',' ') where body like '%#p#分页标题#e#%'

  6. HDU 1430 关系映射 + 打表 .

    题意是中文的不解释.(http://acm.hdu.edu.cn/showproblem.php?pid=1430) 思路:            这个题目直接BFS会超时的(我一开始超时了) ,如果 ...

  7. [转]自建CDN防御DDoS

    自建CDN防御DDoS(1):知己知彼,建设持久防线 前言 本议题是我们在OWASP杭州区2013年岁末年初安全沙龙中进行分享的内容,在此我们对这个议题的整体内容进行了重新归纳梳理,形成了文字版. 在 ...

  8. hdu1501 记忆化搜索

    题意:       给你三个字符串,问你前两个能不能拼成第三个串. 思路:       直接记忆化神搜就行,思路水,看下代码就知道了.这个题目我感觉最大公共子序列dp的作法是错的,虽然有人ac了,随便 ...

  9. GNU C++的符号改编机制介绍(函数的名称粉碎格式解析)

    转载:http://blog.csdn.net/roland_sun/article/details/43233565 众所周知,强大的C++相较于C增添了许多功能.这其中就包括类.命名空间和重载这些 ...

  10. Python中面向对象和类

    目录 面向对象 类的定义 类的访问 类的属性和方法 继承和多态 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 面向对象: 类(C ...