CentOS 7.9 使用rpm包安装MySQL-5.7.43

2023-10-29

参考:refman-5.7.pdf: 2.5.5 Installing MySQL on Linux Using RPM Packages from Oracle


【前期准备】

1.防火墙端口检查与设置

检查防火墙状态:systemctl status firewalld
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld

设置开机启用防火墙:systemctl enable firewalld.service
设置开机禁用防火墙:systemctl disable firewalld.service

查看防火墙状态:firewall-cmd --state
重新加载配置:firewall-cmd --reload
查看开放的端口:firewall-cmd --list-ports
开启防火墙端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

2.清理系统自带的mariadb和残留的mysql历史版本

定位文件:
# rpm -qa | grep mysql
# rpm -qa | grep mariadb
# find / -name mysql
# find / -name mariadb
# find / -name mysqld.log
# yum list installed mariadb\*
# yum list installed mysql\*

停止服务然后卸载:
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -e --nodeps mysql-community-server
rpm -e --nodeps mysql-community-client
rpm -e --nodeps mysql-community-libs
rpm -e --nodeps mysql-community-common

定位并删除配置文件:
# find / -name my.cnf
# rm -rf /etc/my.cnf

/usr/lib64/mysql/plugin

删除数据库数据文件 & 日志临时文件
# rm -rf /var/lib/mysql
# rm -rf /var/log/mysqld.log

3.安装依赖包

yum install libmysqlclient gcc make cmake -y
yum install zlib-devel readline ncurses ncurses-devel openssl-devel -y
yum install libaio -y
yum install net-tools -y


4.下载rpm安装包与包信息说明:


下载解解压 mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar 安装包,安装mysql服务需要的软件包:(server,client,common,libs)

a.数据库服务器及相关工具包:mysql-community-server-{version}-{distribution}-{arch}.rpm
b.MySQL客户端应用程序和工具包:mysql-community-client-{version}-{distribution}-{arch}.rpm
c.服务器库和客户端库的公用文件包:mysql-community-common-{version}-{distribution}-{arch}.rpm
d.MySQL数据库客户端应用程序的共享库包:mysql-community-libs-{version}-{distribution}-{arch}.rpm

5.其他说明:

在默认情况下,MySQL服务器将安装在/var/lib/mysql目录中。 
如果需要安装到其他目录,则需要指定路径,如:mkdir -p /opt/mysql。
常见设置路径方法:

option-1: sudo yum install mysql-community-server --installroot=/opt/mysql
这将在您的/opt目录下创建一个mysql目录,其中包含MySQL服务器安装。

option-2: rpm -ivh --prefix=/opt/mysql 或者 rpm -ivh --badreloc --relocate=/var/lib/mysql=/opt/mysql   xxx.rpm

注意:无论是prefix还是relocate都不见得可以真正可以用,因为有的包或者文件不允许装到其他路径

【安装 - 采用默认路径安装】

严格遵守安装顺序,依赖关系依次为common → libs → client → server

1.执行以下命令正式安装mysql:

sudo rpm -ivh mysql-community-common-5.7.43-1.el7.x86_64.rpm 
sudo rpm -ivh mysql-community-libs-5.7.43-1.el7.x86_64.rpm 
sudo rpm -ivh mysql-community-client-5.7.43-1.el7.x86_64.rpm 
sudo rpm -ivh mysql-community-server-5.7.43-1.el7.x86_64.rpm --force --nodeps

说明:
--nodeps:安装时不检查依赖关系
--force:强制安装

rpm与yum安装命令对比:rpm可能更容易失败,因为存在的一些依赖问题

sudo yum install mysql-community-{client,common,libs}-*
sudo yum install mysql-community-server-*

2.安装命令执行完成后查询安装的 MySQL 版本:

# mysqladmin --version
mysqladmin  Ver 8.42 Distrib 5.7.43, for Linux on x86_64

【启动服务】

检查服务状态:systemctl status mysqld  
启动服务:sudo systemctl start mysqld 或者 sudo service mysqld start
关闭服务:systemctl stop mysqld
重启服务:systemctl restart mysqld

【设置开机启动】

# 设置开机自启动
systemctl enable mysqld
# 重载所有修改过的配置文件
systemctl daemon-reload


【登录 MySQL 修改配置 - 密码与远程访问用户设置】

1.查询安装的临时登录密码

# grep 'temporary password' /var/log/mysqld.log
2023-07-19T11:25:43.977041Z 1 [Note] A temporary password is generated for root@localhost: L!8Xw;Xy8HLi

2.使用临时密码登录

# 输入如下命令回车,然后粘贴临时密码,再回车,输入上面查询到的临时密码登录
mysql -uroot -p

3.修改 root 账户密码,命令格式如下:

命令格式:ALTER USER  'root'@'localhost' IDENTIFIED BY 'new_password';

mysql> alter user 'root'@'localhost' identified by 'root@123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

查看密码策略:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |    决定是否使用该插件(及强制/永久强制使用):ON/OFF/FORCE/FORCE_PLUS_PERMANENT
| validate_password_dictionary_file    |        |    插件用于验证密码强度的字典文件路径
| validate_password_length             | 8      |    密码最小长度
| validate_password_mixed_case_count   | 1      |    密码至少要包含的小写字母个数和大写字母个数
| validate_password_number_count       | 1      |    密码至少要包含的数字个数
| validate_password_policy             | MEDIUM |    密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG
| validate_password_special_char_count | 1      |    密码至少要包含的特殊字符数
+--------------------------------------+--------+
7 rows in set (0.02 sec)
                                                    0/LOW:只检查长度。
                                                    1/MEDIUM:检查长度、数字、大小写、特殊字符。
                                                    2/STRONG:检查长度、数字、大小写、特殊字符字典文件。


mysql> alter user 'root'@'localhost' identified by 'Root@123';

注意:如果后期想要修改密码,可以通过如下命令实现:
mysql> use mysql;
mysql> update user set password=PASSWORD('new_password') where user='root';
mysql> flush privileges;


4.添加远程登录用户,命令格式如下:

命令格式:GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

mysql> grant all privileges on *.* to 'admin'@'%' identified by 'Admin@123' with grant option;
mysql> select Host,User,authentication_string,password_expired from user;
mysql> flush privileges;

5.如果需要指定某个用户未远程访问用户,可以:

mysql> use mysql;
mysql> UPDATE user SET Host='%' WHERE User='xxxUserName';
mysql> flush privileges;


6.设置默认编码为 utf8(可选)

修改添加如下配置:
[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

character-set-server=utf8
collation-server=utf8_general_ci

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


重启服务,测试远程连接:

# systemctl restart mysqld
> mysql -uroot -p
> show variables like 'character%';

rpm包安装方式默认配置文件路径如下:

配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid

如果需要验证安装包,gpg-key下载地址: https://repo.mysql.com/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS 7.9 使用rpm包安装MySQL-5.7.43 的相关文章

  • 如何将Hive数据表迁移到MySql?

    我想知道如何将日期从 Hive 转移到 MySQL 我看过有关如何将 Hive 数据移动到 Amazon DynamoDB 的示例 但没有看到有关如何将 Hive 数据移动到 MySQL 等 RDBMS 的示例 这是我在 DynamoDB
  • 将mysql表限制为一定大小并自动删除最旧的条目[重复]

    这个问题在这里已经有答案了 可能的重复 如何设置MySQL表的最大行数 https stackoverflow com questions 8048001 how can i set a maximum number of rows in
  • 创建用于存储高尔夫球成绩的可扩展数据库架构

    我正在尝试设计一个数据库来存储我所有的朋友和我的高尔夫球成绩 您可能知道 高尔夫得分由 18 洞的个人得分组成 我可以想到两种设计模式的方法 创建一个表 每个洞有一列 例如 h1 到 h18 该表具有引用其他表的 FK player id
  • 编写多个mysql脚本

    是否可以在复合脚本中包含其他 mysql 脚本 理想情况下 我不想为包含的脚本创建存储过程 对于较大的项目 我想分层维护几个较小的脚本 然后根据需要组合它们 但现在 我很乐意学习如何包含其他脚本 source是一个内置命令 您可以在 MyS
  • 如何在具有动态列的表中插入值 Jdbc/Mysql

    我想在具有动态列的表中添加值 我设法创建一个包含动态列的表 但我不知道如何插入数据 Create Table sql CREATE TABLE MyDB myTable level INTEGER 255 int columnNumber
  • 有没有办法从 MySQL 的列中提取与正则表达式匹配的文本?

    例如 如果特定列中的所有条目都具有 a z 0 9 形式 如何仅提取前导字母 以便 asdf123 和 as3456 分别返回 asdf 和 as 这对于 mysql 正则表达式功能来说是不可能的 除非安装一些似乎是为此设计的 udf 从技
  • MySQL JSON 存储与两个表

    与使用单独的元表相比 使用 JSON 在表中存储数据有什么好处吗 这是原始架构 Users Table UserId Username Etc 5 John Avatar Table Id UserId ImageName ImageTyp
  • 如何使用Python高效地将CSV文件数据插入MYSQL?

    我有一个带有 aprox 的 CSV 输入文件 400 万条记录 插入已运行超过 2 小时 但仍未完成 数据库仍然是空的 关于如何实际插入值的任何建议 使用insert into 并且更快 比如将插入物分成块 我对 python 还很陌生
  • 选择早于的时间戳

    我如何从数据库中选择超过 12 小时的项目 我使用时间戳列来存储时间 但我认为我不需要年 月 日 只需要小时 我有类似的东西 但它不起作用 没有错误 只是从表中返回所有数据 sql SELECT FROM Y WHERE X and tim
  • 用Java将图像添加到数据库

    我正在尝试将图像添加到 mysql 数据库中的 BLOB 字段 图像大小将小于 100kb 但是我遇到了问题 想知道将这些数据添加到数据库的更好方法是什么 com mysql jdbc MysqlDataTruncation 数据截断 第
  • MySQL按总和连接表问题

    我在连接表时遇到问题 以下是示例表 表A 30行 ID Name Description 1 Type Unicode Art 2 Header Spreadsheet 3 Auto Align Off 表B 100行 ID Name De
  • 如何将从 MySQL 获取的数据以 JSON 形式返回到 php 文件中?

    我必须将从 MySQL 表中获取的数据作为 JSON 返回到 php 文件中 这是我连接到 mysql 并从中获取数据的代码 现在我怎么能将它作为 JSON 返回呢
  • WordPress 访问

    我正在与朋友一起开发一个网站 使用Wordpress我们正在尝试从我的计算机和他的计算机访问同一个 WordPress 帐户 以便我们可以一起在网站上工作 我们尝试将彼此添加为管理员 但只能从创建管理员的计算机上访问新帐户 有谁知道如何做到
  • 严格标准:资源 ID#73 用作偏移量,转换为整数

    我使用这个 PHP 函数获取 MySql 结果 function fetcharray query id if query id query id this gt query res if query id this gt q array
  • 在 while 循环内查询可以吗?

    我在一个数据库中有两个表 我正在查询第一个表限制 10 然后循环结果 在 while 循环内 我使用第一个查询中的数据作为参数再次执行另一个查询 以下是该脚本的示例
  • 查询中的存储过程

    有一个程序获取文件列表 顾名思义 返回一个文件列表以及更多选项 那么是否可以在查询选择中使用此过程 像这样的东西 select Field1 from Image where Field2 IN call GetFileList 你应该把它
  • 使用子查询与 LEFT JOIN 一起选择 MAX 值

    我有一个获取搜索结果的查询 效果很好 查询成功示例 SELECT individuals individual id individuals unique id TIMESTAMPDIFF YEAR individuals day of b
  • MySQL 连接不工作:2002 没有这样的文件或目录

    我正在尝试设置 WordPress 我已经运行了 Apache 和 MySQL 并且帐户和数据库都已设置 我尝试建立一个简单的连接 我总是得到这个 错误 2002 没有这样的文件或 目录 它正在谈论什么文件或目录 我使用的是 OS X Sn
  • 更新查询增量字段加上 1 codeigniter 函数 [重复]

    这个问题在这里已经有答案了 我想在 codeigniter 项目中将字段值增加到当前值加 1 所以 我做了一个功能 但它不起作用 我的职能是 function increse field by 1 table name fieldToInc
  • 多个数据库连接

    我有三张桌子 categories content info and content The categories表包含类别的id及其 IDparent类别 The content info包含两列 entry id帖子的 ID 和cat

随机推荐

  • python 根据索引取值_Python 从列表中取值和取索引的方法

    如下所示 name list zhangsan lisi wangwu 1 取值 print name list 0 print name list 1 print name list 2 2 取索引 print name list ind
  • 北京市经济和信息化局:鼓励布局区块链算力中心

    近日 北京市经济和信息化局印发 北京市数据中心统筹发展实施方案 2021 2023年 的通知 方案提出 鼓励布局人工智能 区块链算力中心 推动形成 4000PFlops 即每秒 4 百亿亿次浮点运算 总算力规模的人工智能公共算力基础设施 重
  • GEN 自动生成 GORM 模型结构体文件及使用示例

    GEN 自动生成 GORM 模型结构体文件及使用示例 背景 GEN 是一个基于 GORM 的安全 ORM 框架 由字节跳动无恒实验室与 GORM 作者联合研发 主要功能说白了就是帮助生成数据表对应的模型文件和更安全方便地执行SQL 直接使用
  • 短链服务架构实践

    1 存储采用REDIS做数据存储 2 id keyword gt long url hset key long url id keyword long url 3 md5 long url gt id keyword hset key sh
  • 队列的实际应用和操作(顺序表)

    题目 利用队列求解报数问题 设有n个人站成一排 从左向右的编号分别为1 n 现在从左往右报数 1 2 1 2 数到 1 的人出列 数到 2 的立即站到队伍的最右端 报数过程反复进行 直到n个人都出列为止 要求给出他们的出列顺序 头文件SqQ
  • 内附源码!使用Python和requests库轻松爬取全国高校排名

    目录 前言 代码实现 总结 前言 中国的大学排名数据比较分散 一些权威机构会发布综合排名 如教育部的 双一流 985 211 计划 还有一些机构会发布专业排名等 因此 具体爬取哪些排名数据可能需要根据实际需要来进行筛选 代码实现 导入req
  • C++ final关键字

    1 禁用继承 C 11中允许将类标记为final 方法时直接在类名称后面使用关键字final 如此 意味着继承该类会导致编译错误 实例如下 class Super final 2 禁用重写 C 中还允许将方法标记为fianal 这意味着无法
  • (小白教学) 用Node.js+Mysql+Express从0搭建实现简单的登录注册

    Node js Express MySql实现用户登录注册 开发工具 vscode git postman 工程目录 数据库表 node搭建过程 首先创建一个为空文件夹server 打开git 初始化一个package json包 npm
  • PointNet学习笔记(一)—— 论文

    PointNet学习笔记 一 论文 本文记录了博主在学习 PointNet Deep Learning on Point Sets for 3D Clasification and Segmentation 过程中的总结笔记 更新于2019
  • linux grpc c++编译安装

    环境信息 1 操作系统 centos7 4 2 g 版本 4 8 5 grpc v1 29 1 版本 源码下载 因为国内现在访问github速度很慢 这里用了代理镜像 git clone b v1 29 1 https hub xn gzu
  • 安装打印机时LPT,COM、USB端口区别

    LPT 并口 LPT是用于使用打印机或其它设备的 LPT并口是一种增强了的双向并行传输接口 在USB接口出现以前是扫描仪 打印机最常用的接口 目前使用滴少 COM 串口 COM端口通常用于连接鼠标及通讯设备 如连接外置式MODEM进行数据通
  • 内网进行spring-boot开发时Jar包依赖的解决

    1 简介 使用Spring Boot可以轻松的创建独立运行的程序 非常容易构建独立的服务组件 是实现分布式架构 微服务架构的利器 Spring Boot简化了第三方包的引用 通过提供的starter 简化了依赖包的配置 1 1 Spring
  • Cisco Packet Tracer配置操作的三种命令模式

    Cisco Packet Tracer三种基本命令模式 这里我们需要讲一下三种命令模式 今后绝大部分操作都通过命令实现 所以需要熟悉命令模式 在路由器命令配置界面中演示 三种命令模式介绍 用户模式 用户模式下可进行的操作较少 我们一般不在用
  • kubeadm init三个master节点遇到的问题

    要创建三个master节点 就不能使用其中一台主机的IP 所以申请了一个VIP地址 kubeadm init apiserver advertise address 0 0 0 0 image repository k8s gcr io c
  • qmake 乱乱乱谈(四)

    继续qmake 本文主题 低调的 TEMPLATE subdirs 非常非常常用的一个东西 可是manual中却介绍的很少 太低调了 在编写包含多可执行文件 库 插件 的程序时 一直不敢相信subdirs的能力 以至于曾一度想转到cmake
  • python三级考什么_什么是计算机三级考试?计算机三级考什么?

    什么是计算机三级考试 计算机三级考什么 2020 04 1118 04 03 来源 上学吧 作者 dengyangjie 全国计算机等级考试 National Computer Rank Examination 简称NCRE 是经原国家教育
  • HTTP POST GET 本质区别详解

    一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式 在FORM提交中 可以通过Method指定提交方式为GET或者POST 默认为GET提交 Http定义了与服务器交互的不同方法 最基本的方法有4种 分别是GET POST PU
  • 硬件工程师修炼的几层境界

    分享一篇文章 觉得写的很好 mark一下 第零层 1 对基础技术有认知 2 模电 数电 电路分析 信号与系统 物理学之电磁学基础 3 基本掌握焊接 电路设计软件 示波器使用 万用表等基础仪器仪表的使用 第一层 1 精力主要花在学习原理图工具
  • Windows 7 下 vs2010内存泄漏检测工具VLD的使用

    1 环境和软件 Windows7 32位系统 Visual Studio 2012 旗舰版 vld 2 2 3 setup exe 大小1 04M 2 步骤 1 下载安装 下载好 vld 2 2 3 setup exe 大小1 04M 并安
  • CentOS 7.9 使用rpm包安装MySQL-5.7.43

    参考 refman 5 7 pdf 2 5 5 Installing MySQL on Linux Using RPM Packages from Oracle 前期准备 1 防火墙端口检查与设置 检查防火墙状态 systemctl sta