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 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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6. Docker之使用第三方镜像

第三方镜像是在Docker Hub或其他容器注册表上提供的预构建Docker容器镜像。这些镜像由个人或组织创建和维护,可以作为您容器化应用程序的起点。 查找第三方镜像 Docker Hub 是最大和最受欢迎的容器镜像注册表,包含官方和社区维护的镜像。您可以根据名称…

创建型模式

创建型模式(Creational Pattern)关注对象的创建过程,是一类最常用的设计模式,在软件开发中应用非常广泛。创建型模式将对象的创建和使用分离,在使用对象时无须关心对象的创建细节,从而降低系统的耦合度&…

学堂在线数据结构(上)(2023春)邓俊辉 课后题

The reverse number of a sequence is defined as the total number of reversed pairs in the sequence, and the total number of element comparisons performed by the insertion sort in the list of size n is: 一个序列的逆序数定义为该序列中的逆序对总数,…

pandas 笔记:pivot_table 数据透视表\pivot

1 基本使用方法 pandas.pivot_table(data, valuesNone, indexNone, columnsNone, aggfuncmean, fill_valueNone, marginsFalse, dropnaTrue, margins_nameAll, observedFalse, sortTrue)2 主要参数 dataDataFramevalues要进行聚合的列index在数据透视表索引(index…

瞧瞧别人家的API接口,那叫一个优雅

前言 在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台API接口,或者提供API接口给第三方平台调用。 那么问题来了,如果设计一个优雅的API接口,能够满足:安全性、可重复调用、稳定性、好…

自动驾驶代客泊车AVP摄像头与ECU交互需求规范

目录 1 文档范围及控制方法... 5 1.1 目的.... 5 1.2 文档授权... 5 1.3 文档变更管理... 5 1.4 缩写.... 5 1.5 术语.... 5 2 系统组成... 6 2.1 系统框图... 6 2.2 电源供应和时序要求... 7 2.2.1 摄像头供电控制... 7 2.2.2 摄像头上电时序要求…

【产品经理】TO B市场分析

市场分析是一个独立而又宏大的学科领域,并且具体使用中,目标和个体不同,分析的方式方法也不同。TO B产品的市场分析是对市场环境、市场规模、性质、特征、竞品进行分析,从而寻找和研究潜在需求的市场机会,帮助产品经理…

[洛谷]P8662 [蓝桥杯 2018 省 AB] 全球变暖(dfs)

读题不规范&#xff0c;做题两年半&#xff01; 注意&#xff1a;被海水淹没后的陆地应用另一个字符表示&#xff0c;而不是把它变为海洋&#xff0c;这个点可以便利&#xff0c;但不能被当作起点&#xff0c;不然就只有 36 分。 ACocde: #include<bits/stdc.h> using…

浅谈无人机遥感图像拼接与处理方法

遥感&#xff08;RS-Remote Sensing&#xff09;——不接触物体本身&#xff0c;用传感器收集目标物的电磁波信息&#xff0c;经处理、分析后&#xff0c;识别目标物&#xff0c;揭示其几何、物理性质和相互关系及其变化规律的现代科学技术。 换言之&#xff0c;即是“遥远的感…

opencv -13 掩模

什么是掩膜&#xff1f; 在OpenCV中&#xff0c;掩模&#xff08;mask&#xff09;是一个与图像具有相同大小的二进制图像&#xff0c;用于指定哪些像素需要进行操作或被考虑。掩模通常用于选择特定区域或进行像素级别的过滤操作。 OpenCV 中的很多函数都会指定一个掩模&…

【Express.js】基于业务特性的分布式结构

基于业务特性的分布式结构 上节的mvc架构&#xff0c;把所有不同模块的同层文件都放在一个目录下 我们也可以将你的项目结构按照业务模块进行划分&#xff0c;每一个模块内可以再按mvc分层&#xff0c;或者不分&#xff0c;这样子把不同模块独立出来的就叫做分布式结构(dcs) …

2. CSS3的新特性

2.1 CSS3的现状 ●新增的CSS3特性有兼容性问题, ie9才支持 ●移动端支持优于PC端 ●不断改进中 ●应用相对广泛 ●现阶段主要学习: 新增选择器和盒子模型以及其他特性 CSS3给我们新增了选择器,可以更加便捷,更加自由的选择目标元素&#xff1a; 1.属性选择器 2.结构伪类选择器…

js常用功能方法

一. 从0~9十个数字中随机选出5个数 function randomFive(){var arr [0,1,2,3,4,5,6,7,8,9];var out [];var num 5;while(out.length < num){var temp (Math.random()*arr.length) >> 0;out.push(arr.splice(temp,1));}return out}二. JS去掉字符串前后空格或去掉…

【详细介绍分析golang中map的相关知识】

golang-map 定义和初始化操作和访问添加和修改元素删除元素获取元素判断键是否存在遍历map 常见应用场景 Golang中的map是一种非常强大和灵活的数据结构&#xff0c;它可以用来存储键值对。在本文中&#xff0c;我们将深入探讨Golang中map的相关知识&#xff0c;包括其定义、初…

1.7 运维可以转行什么

文章目录 运维可以转行什么1. 云计算与DevOps2. 信息安全3. 数据分析与大数据4. 项目管理5. 咨询与培训结论 运维可以转行什么 运维&#xff08;Operations and Maintenance&#xff0c;简称O&M&#xff09;是信息技术领域中的重要职能&#xff0c;负责管理和维护企业的信…

代码随想录一刷day50

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣123.买卖股票的最佳时机III二、力扣● 188.买卖股票的最佳时机IV 前言 一、力扣123.买卖股票的最佳时机III class Solution {public int maxProfit(i…

拖动排序功能的实现 - 使用HTML、CSS和JavaScript

引言 在现代Web应用程序中&#xff0c;拖动排序是一种常见的用户界面交互方式&#xff0c;它允许用户通过拖动元素来重新排列列表或项目的顺序。本文将介绍如何使用HTML、CSS和JavaScript来实现手动拖动排序功能。 一、HTML结构 首先&#xff0c;我们需要定义一个列表&#…

电子病历编辑器源码

电子病历系统采取结构化与自由式录入的新模式&#xff0c;自由书写&#xff0c;轻松录入。化实现病人医疗记录&#xff08;包含有首页、病程记录、检查检验结果、医嘱、手术记录、护理记录等等。&#xff09;的保存、管理、传输和重现&#xff0c;取代手写纸张病历。不仅实现了…

利用深度学习进行黑白照片着色:使用 Keras 构建 GAN 进行照片自动上色的详细实践指南

利用深度学习进行黑白照片着色&#xff1a;使用 Keras 构建 GAN 进行照片自动上色的实践指南 在这篇博客文章中&#xff0c;我们将探讨一个具有挑战性的问题&#xff0c;即如何利用深度学习自动为黑白照片上色。传统的图片上色过程是一个艰苦且劳动密集型的过程&#xff0c;必…

Cannot get a STRING value from a NUMERIC cell

Cannot get a STRING value from a NUMERIC cell 错误一&#xff1a; 导入Excel表格数据&#xff0c;该列设置数据类型为String&#xff0c;输入数据是int类型 解决方法&#xff1a;cell.setCellType(CellType.STRING); 错误二&#xff1a;日期类型需要定义格式 解决方法如下&a…