Linux 通过RPM包安装 MySQL 8.0

2023-11-18

Linux平台上推荐使用RPM包来安装Mysql,MySQL 提供了以下RPM包的下载地址:

  1. MySQL-MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。
  2. MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。
  3. MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。
  4. MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。
  5. MySQL-bench - MySQL数据库服务器的基准和性能测试工具。

安装过程中可能发生的错误在文章底部都有说明和解决步骤:

安装前,我们可以检测系统是否自带安装 MySQL:

rpm -qa | grep mysql

如果你系统有安装,那可以选择进行卸载:

// 普通删除模式
rpm -e mysql
// 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
rpm -e --nodeps mysql

安装 MySQL:
接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源包,下载地址:https://dev.mysql.com/downloads/repo/yum/
这里写图片描述
这里我们选择使用wget下载:

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

安装:

rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum install mysql-server

安装过程中会需要提示下载依赖,按y确认下载即可:
这里写图片描述
初始化MySQL:

mysqld --initialize

启动 MySQL:

service mysqld start

查看 MySQL 运行状态:

service mysqld status

验证 MySQL 安装
在成功安装 MySQL 后,一些基础表会被初始化,在服务器启动后,你可以通过简单的测试来验证 MySQL 是否工作正常。

使用 mysqladmin 工具来获取服务器状态:

mysqladmin --version

linux上该命令将输出以下结果,该结果基于你的系统信息:

这里写图片描述
如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。

使用 MySQL Client(Mysql客户端) 执行简单的SQL命令
你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到Mysql服务器上,默认情况下Mysql服务器的密码为空,所以本实例不需要输入密码。
命令如下:

mysql -uroot -p

以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

安装问题错误解决:

1,Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details. 错误

这里写图片描述
根据提示,分别使用service mysqld status和journalctl -xe查看服务启动失败的原因,发现是目录权限不足造成的,通过查看mysql目录发现目录下有的文件归属还是root,改成mysql即可
这里写图片描述

ll /var/lib/mysql |grep mysql
chown -R mysql:mysql /var/lib/mysql

2,ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO) 错误

这里写图片描述
停止mysql服务:

service mysqld stop

修改配置文件无密码登录:

vi /etc/my.cnf

在最尾部加上:

skip-grant-tables

这里写图片描述
保存,启动mysql:

service mysqld start

登录mysql:

mysql -u root

查询mysql数据库:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

选中mysql数据库:

mysql> use mysql;
Database changed

首先更新root密码为空字符串:

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

退出,删除之前步骤加上的 “skip-grant-tables” 然后重启mysql:

// 1,退出
exit
// 2,修改,删除最后的skip-grant-tables
vim /etc/my.cnf
// 3,重启
service mysqld restart

然后在登陆Mysql:

mysql -uroot

使用ALTER修改root用户密码,方法为 ALTER user ‘root’@’localhost’ IDENTIFIED BY ‘新密码’。如下:

ALTER user 'root'@'localhost' IDENTIFIED BY '你的密码';

然后再用exit退出,再次登陆mysql就需要使用密码了,密码就是刚刚修改的密码

3,SQLyog连接时,报1130错误,是由于没有给远程连接的用户权限问题

这里写图片描述
步骤一:
改变MySQL的连接权限
由于MySQL的默认的root的连接权限只是本机的,因此,我们需要开启他的权限,使得它可以使其他人都能连接到他,这里有很多方法可以走到,我这里就先用改表举例子
改表法,顾名思义,就是改变数据库的表,是的root这个账号能够处理其他ip地址的连接

mysql-> use mysql;
Database Changed
//查看数据库表
mysql-> select host, user from user;
//修改数据库表
mysql-> update user set host = '%' where user = 'root';

这样就可以使得root账号能够被其他ip连接入数据库了

步骤二:
修改MySQL8.0的密码的编码方式,由于MySQL8.0修改了他的编码方式,而我的SQLyog 好像又没有这个编码方式的密码,因此,就只能将密码的编码方式修改为原来的编码方式了,不然就没有方法登陆了

// 由于之前将root对于的localhost改为了%,因此,root后面的地址也要变成%
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';

如果通过以上步骤还连接不上,请检查防火墙是否已经关闭。
CentOS6关闭防火墙使用以下命令:

// 临时关闭
service iptables stop
// 禁止开机启动
chkconfig iptables off

CentOS7关闭防火墙使用以下命令:

// 临时关闭
systemctl stop firewalld
// 禁止开机启动
systemctl disable firewalld
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 通过RPM包安装 MySQL 8.0 的相关文章

随机推荐

  • uView实现全屏选项卡

    直接复制粘贴即可使用
  • spring boot + aop 自定义日志--收集操作日志

    背景 spring boot aop 自定义注解收集controller层日志 自定义注解 1 1 自定义注解 pom xml
  • 互联网公司级别的简单划分(小白总结)

    1 小公司10 20人 2 稍大的公司 外包公司 3 普通上市公司 有限责任公司 股份制公司 4 知名互联网独角兽 5 央企 工作稳定 6 国企 一线国企 全员分红 年终奖 非一线国企 比一线稍差 7 BAT 美团 字节跳动 京东 注意 x
  • Go(九)指针

    目录 Go语言中的指针 1 1 指针地址和指针类型 1 2 指针取值 1 3 new和make 1 3 1 new 1 3 2 make 1 3 3 new与make的区别 区别于C C 中的指针 Go语言中的指针不能进行偏移和运算 是安全
  • msys64安装使用

    msys64安装使用 下载工具 安装 修改软件下载源 添加工具 查找软件名并安装 更新数据库 测试 之前安装的msys64由于某些原因出现密钥无法更新等问题 各种方法都试了还是处理不了 算了浪费时间耽误事直接卸载掉了 重新安装 最近看到有解
  • python初学者学习第1天

    python环境安装 要想学习 门新的编程语 少不了安装各种各样的软件和配置各种各样的环境 为此 给学习python的同学准备了 份环境安装指南 一 python安装包下载 需要从python官网 https www python org
  • 认识MSCI ESG评级

    认识MSCI ESG评级 成为ESG领导者 ESG特辑 商道纵横 ESG 环境 社会和公司治理 简称ESG 投资理念逐渐成为国际资本市场中的主流投资策略 对于投资者而言 要充分掌握企业的ESG表现 评估企业的环境社会贡献 需要具有公允力的E
  • RabbitMQ 登录控制台出现 “你与此网站的连接不是私密连接“

    解决方案 可能是创建容器时 密码没能成功设置进去 重新设置密码 先进入MQ容器中 我这里是用的docker 容器 docker exec it mq容器名 bash 查看用户 rabbitmqctl list users 修改密码 rabb
  • Python内置数据类型之List篇

    List的定义 li one two three four List是一个有序的集合 这点不同于Dictionary Dictionary是无序的 1 索引和切片 索引有正负之分 正索引下标从0开始 负索引下标从 1开始 比如 gt gt
  • 区块链和传统数据库有什么区别?

    都说区块链就是一种数据库 那区块链和传统数据库到底有什么区别呢 传统数据库拥有与其记录相关的授的客户机可以更改放在统一服务器上的部分 通过演进 ace副本 无论客户端在什么时候使用他们的PC访问数据库 他们都将获得数据库部分的更新适应 对数
  • python二维数组列表输出格式化:对齐数据(实例)

    学习python过程中遇到的问题 在这里记录一下 下面是二维列表 数组 格式化输出的实例 注意 t 有加后会自动对齐 a 学生学号 高等数学 高等物理 高等化学 程序语言 英文六级 个人平均成绩 201 t65 t58 t75 t80 t8
  • python保留小数位的三种方法

    python保留小数位的三种方法 保留小数位是我们经常会碰到的问题 尤其是刷题过程中 那么在python中保留小数位的方法也非常多 但是笔者的原则就是什么简单用什么 因此这里介绍几种比较简单实用的保留小数位的方法 方法一 format函数
  • PhpStorm64修改内存后不能启动

    审查phpstorm bat 这个bat文件应该是监控程序运行 并输出错误日志用的 在末尾加上pause查看完整的运行周期 JAVA EXE ALL JVM ARGS cp CLASS PATH com intellij idea Main
  • javac 命令 javac 命令大全详解---推荐看

    javac 命令 javac 命令大全详解 温柔一刀的技术博客 51CTO博客 1 javac 命令 用法 javac
  • Java--集合知识再补充(Map集合)

    下面就是我整理的部分学习笔记 学无止境 加油 为方便对多个对象的操作 就对对象进行存储 集合就是存储对对象最常用的一种方式 数组长度是固定的 且可以存储基本数据类型 集合可变 集合只能存储对象 Collection 下有两个子接口 为Lis
  • 权限验证-JWT认证

    JWT 1 什么是JWT JSON Web Token 通过数字签名的方式 以JSON对象为载体 在不同的服务终端之间安全的传输信息 2 JWT有什么用 JWT最常见的场景就是授权认证 一旦用户登录 后续每个请求都将包含JWT 系统在每次处
  • CentOS7 - systemd服务及开启关闭服务命令

    RHEL CentOS 7 0中一个最主要的改变 就是切换到了systemd 它用于替代红帽企业版Linux前任版本中的SysV和Upstart 对系统和服务进行管理 systemd兼容SysV和Linux标准组的启动脚本 Systemd是
  • oracle date 和 timestamp区别

    在今天的工作中 学到了以下几个知识点 一 date和timestamp 的区别 date类型是Oracle常用的日期型变量 他的时间间隔是秒 两个日期型相减得到是两个时间的间隔 注意单位是 天 例如 查看一下当前距离伦敦奥运会开幕还有多长时
  • c++ multiple definition of 问题解决方法

    问题描述 有一个 h头文件 两个 cpp文件都引用了这个 h文件 在 h文件中声明了一些全局变量或函数 编译时报错 multiple definition of 原因 好像是由于多次包含 然后编译 cpp文件是重复 定义了 解决方法 1 使
  • Linux 通过RPM包安装 MySQL 8.0

    Linux平台上推荐使用RPM包来安装Mysql MySQL 提供了以下RPM包的下载地址 MySQL MySQL服务器 你需要该选项 除非你只想连接运行在另一台机器上的MySQL服务器 MySQL client MySQL 客户端程序 用