【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式
【mysql】centOS7安装mysql详细操作步骤!
linux系统安装mysql版本
需要 root 权限,使用 root 用户进行命令操作。使用tar文件包,安装,gz包也可以但是还需要配置用户,tar包虽然大,但是全啊!
1. 检查并卸载旧版本 MySQL(如果有)删除配置文件
查询是否存在 MariaDB 相关安装包,MariaDB 是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB 的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
rpm -qa | grep mariadb
# 删除已经安装的mariadb,通过上面查询得到的文件名为:mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
# 再查询是否存在 MariaDB 相关安装包
rpm -qa | grep mariadb
# 查看正在运行的 MySQL 服务
在安装新版本之前,需要确认系统中是否存在旧版本的 MySQL 并将其卸载。
# 查看是否安装了旧版本 MySQL
rpm -qa | grep mysql
# 如果有相关包,使用以下命令卸载,例如
sudo yum remove mysql*
# 查看系统版本
cat /etc/os-release
# 查看是x86_64,还是arm
uname -m
查看正在运行的 MySQL 服务
ps axj | grep mysql
存在正在运行的 MySQL 服务,停止 MySQL 服务
systemctl stop mysqld
查看 MySQL 服务状态
systemctl status mysqld
查询是否存在 MySQL 相关安装文件
find / -name mysql
存在 MySQL 相关安装文件,全部删除
rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql /export/server/mysql
# 再次,查询是否存在 MySQL 相关安装文件
find / -name mysql
删除 MySQL 相关配置文件
rm -rf /etc/my.cnf /etc/init.d/mysql /etc/init.d/mysqld
删除 mysql 用户和用户组
userdel mysql
groupdel mysql
2. 下载MySQL +上传centOS7
访问 MySQL 官方下载页面(https://downloads.mysql.com/archives/community/),找到适合【选择系统,选择版本】
我用的下载链接是:https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar,8.036版本
下载完成后,上传centOS7 ,我通过rz命令上传的!
# 创建目录
mkdir -p /export/server/mysql
# 进入目录
cd /export/server/mysql
# 上传
rz 选择文件
# 解压到这个目录,.tar 格式的为打包不压缩,使用 tar -xvf,解压后是相关的文件,不是目录。
tar -xvf mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar -C /export/server/mysql
# 查看解压后的情况
ls -l /export/server/mysql

3. 安装依赖+安装rpm包
安装 openssl 和 openssl-devel,OpenSSL库是用于加密和解密数据的库,MySQL在安全通信时需要使用OpenSSL库。
yum -y install openssl openssl-devel
安装 libaio ,libaio库是Linux异步I/O操作的库,MySQL在进行I/O操作时需要使用libaio库。
yum -y install libaio
安装ncurses,ncurses库是用于控制终端输出的库,MySQL的终端工具需要使用ncurses库。
yum -y install libncurses*

进入目录 /export/server/mysql,查看目录内容
cd /export/server/mysql
ls -l
依次执行以下命令,依次安装 /export/server/mysql 目录下的各个.rpm文件,一定要注意安装顺序,要不然安装不上!
rpm -ivh mysql-community-client-plugins-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm

下面这些不用安装
mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar # 原来的包不用安装
mysql-community-test-8.0.36-1.el7.x86_64.rpm # 测试包
mysql-community-server-debug-8.0.36-1.el7.x86_64.rpm # debug
mysql-community-debuginfo-8.0.36-1.el7.x86_64.rpm # debuginfo
4. 配置 MySQL
修改配置文件 /etc/my.cnf,在 [mysqld] 中增加配置内容
vim /etc/my.cnf
增加的配置内容以下
# 设置 MySQL 服务运行的端口号
port=3306
# 指定 MySQL 数据库的默认字符集
character-set-server=utf8mb4
# 允许外部访问
bind-address=0.0.0.0
# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
# 设置 MySQL 允许访问的最大连接数
max_connections=1000
# 指定MySQL服务器存储数据文件的目录
datadir=/var/lib/mysql
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
# 事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation=READ-COMMITTED
# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp=true

目录授权,初始化,生成root用户
# 清空目录
sudo rm -rf /var/lib/mysql/*
# 授权
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql
# 初始化mysql数据库
sudo mysqld --initialize --user=mysql

[mysqld]
port=3306
character-set-server=utf8mb4
bind-address=0.0.0.0
init_connect='SET NAMES utf8mb4'
max_connections=1000
datadir=/var/lib/mysql
lower_case_table_names=1
transaction_isolation=READ-COMMITTED
explicit_defaults_for_timestamp=true
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
5. 启动 MySQL
【MySQL 安装完成后,会自动配置名称为 mysqld 的服务,可以被 systemctl 管理。】
启动 MySQL 服务
sudo systemctl start mysqld.service
查看 MySQL 服务
systemctl status mysqld.service
查看 MySQL 服务进程
ps axj | grep mysqld

设置 MySQL 服务开机自动启动
systemctl enable mysqld.service
6. 登录 MySQL
- 方式1:
获取临时密码进行登录
获取 MySQL 日志文件的路径,查看配置文件 /etc/my.cnf 中的 log-error 的内容 /var/log/mysqld.log 就是 MySQL 日志文件的路径
cat /etc/my.cnf
再查看 MySQL 日志文件 /var/log/mysqld.log,使用通道符按关键字直接检索,获取临时密码
grep "temporary password" /var/log/mysqld.log
登录 MySQL
mysql -u root -p
不修改密码,不允许执行SQL命令。
修改密码,MySQL默认的密码策略是要包含大写字母、小写字母、数字、特殊字符,长度大于8位
alter user 'root'@'localhost' identified by '复杂的密码';
退出 MySQL
exit;
重新登录 MySQL,使用修改后的密码
mysql -u root -p
- 方式2:
跳过密码验证进行登录。不推荐。除非通过方式1获取不到临时密码,或者使用过程中忘记密码了。
修改 /etc/my.cnf 配置文件,在 [mysqld] 后面任意一行添加 skip-grant-tables
vim /etc/my.cnf
重启 MySQL
systemctl restart mysqld
登录 MySQL(无 -p 选项,无需密码登录)
mysql -u root
刷新权限 ,需要刷新权限之后才能修改密码
flush privileges;
修改密码,MySQL默认的密码策略是要包含大写字母、小写字母、数字、特殊字符,长度大于8位
alter user 'root'@'localhost' identified by '复杂的密码';
退出 MySQL
exit;
再修改 /etc/my.cnf 配置文件,将 skip-grant-tables 这行注释或删除掉
vim /etc/my.cnf
重启 MySQL
systemctl restart mysqld
7. 开放端口
查看 MySQL 服务监听哪些端口
netstat -nap | grep mysqld
检查端口是否开放
firewall-cmd --zone=public --query-port=3306/tcp
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载
firewall-cmd --reload
# 再检查端口是否开放
firewall-cmd --zone=public --query-port=3306/tcp
8. 设置远程登录
MySQL8默认只能本地连接,不允许远程终端连接
登录 MySQL,新建 root_rw 用户,允许在远程终端(192.168.88.1)上远程登录, % 代表所有终端
mysql -u root -p
create user 'rw'@'192.168.88.1' identified by '复杂的密码';
# create user 'rw'@'%' identified by '复杂的密码';
授予权限(最大权限)
grant all privileges on *.* to 'rw'@'192.168.88.1';
# grant all privileges on *.* to 'rw'@'%';
刷新权限
flush privileges;
查看用户情况
SELECT host, user FROM mysql.user

9. 测试远程登录
可以使用SQLyog, Navicate, DataGrip 等工具链接测试!
10. 删除安装文件
删除安装包文件
rm -rf /root/mysql-8.4.3-1.el7.x86_64.rpm-bundle.tar
删除安装包解压的安装目录
rm -rf /export/server/mysql
如果出现不是东八区时间,可以
select now(); # SET time_zone = '+08:00'; SET GLOBAL time_zone = '+08:00';
相关文章:
【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式
【mysql】centOS7安装mysql详细操作步骤! linux系统安装mysql版本 需要 root 权限,使用 root 用户进行命令操作。使用tar文件包,安装,gz包也可以但是还需要配置用户,tar包虽然大,但是全啊! 1. …...
Linux 下 MySQL 8 搭建教程
一、下载 你可以从 MySQL 官方下载地址 下载所需的 MySQL 安装包。 二、环境准备 1. 查看 MySQL 是否存在 使用以下命令查看系统中是否已经安装了 MySQL: rpm -qa|grep -i mysql2. 清空 /etc/ 目录下的 my.cnf 执行以下命令删除 my.cnf 文件: [roo…...
单口路由器多拨号ADSL实现方法
条件是多拨号场景,公司路由器接口不够用...
最新版VMware 17.6.3安装包分享
修复 Windows 11 主机无响应问题:Windows 11 主机锁定或解锁后,虚拟机可能变得无响应,此问题已在 17.6.3 版本中解决。 解决虚拟机启动崩溃问题:在某些系统上启动虚拟机后,Workstation Pro 可能会崩溃,新版…...
Java高频面试之集合-12
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:HashMap 的 hash 函数是怎么设计的? HashMap的hash函数设计核心在于减少碰撞、提高数据分布均匀性,具体实现…...
视频推拉流EasyDSS案例分析:互联网直播/点播技术与平台创新应用
随着互联网技术的快速发展,直播/点播平台已成为信息传播和娱乐的重要载体。特别是在电视购物领域,互联网直播/点播平台与技术的应用,不仅为用户带来了全新的购物体验,也为商家提供了更广阔的营销渠道。传统媒体再一次切实感受到了…...
【黑马点评|项目】万字总结(下)
文章上半部分: 【黑马点评|项目】万字总结(上) 优惠卷秒杀 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显,容易出…...
[数据结构]排序之 直接选择排序
1 基本思想: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的 数据元素排完 。 2 直接选择排序 : 在元素集合 array[i]--array[n-1] 中选择关键码最大 ( 小 ) 的数据元素…...
前端工程化之前端工程化详解 包管理工具
前端工程化详解 & 包管理工具 前端工程化什么是前端工程化前端工程化发展脚手架能力 体验度量规范流程效能流程扭转 稳定性建设针对整体稳定性建设 可监控:前端监控系统 包管理工具npm包详解package.jsonname 模块名description 模块描述信息keywords࿱…...
深入解析 React Diff 算法:原理、优化与实践
深入解析 React Diff 算法:原理、优化与实践 1. 引言 React 作为前端领域的标杆框架,采用 虚拟 DOM(Virtual DOM) 来提升 UI 更新性能。React 的 Diff 算法(Reconciliation) 是虚拟 DOM 运行机制的核心&a…...
Linux 蓝牙音频软件栈实现分析
Linux 蓝牙音频软件栈实现分析 蓝牙协议栈简介蓝牙控制器探测BlueZ 插件系统及音频插件蓝牙协议栈简介 蓝牙协议栈是实现蓝牙通信功能的软件架构,它由多个层次组成,每一层负责特定的功能。蓝牙协议栈的设计遵循蓝牙标准 (由蓝牙技术联盟,Bluetooth SIG 定义),支持多种蓝牙…...
PySide(PyQt),使用types.MethodType动态定义事件
以PySide(PyQt)的图片项为例,比如一个视窗的场景底图是一个QGraphicsPixmapItem,需要修改它的鼠标滚轮事件,以实现鼠标滚轮缩放显示的功能。为了达到这个目的,可以重新定义一个QGraphicsPixmapItem类,并重写它的wheelE…...
2.5 python接口编程
在现代软件开发的复杂生态系统中,不同系统、模块之间的交互协作至关重要。接口编程作为一种关键机制,定义了组件之间的通信规范与交互方式。Python 凭借其卓越的灵活性、丰富的库资源以及简洁易读的语法,在接口编程领域占据了重要地位&#x…...
SpringData JPA事务管理:@Transactional注解与事务传播
文章目录 引言一、事务基础概念二、Transactional注解详解2.1 基本用法2.2 属性配置2.3 类级别与方法级别 三、事务传播行为详解3.1 REQUIRED(默认)3.2 REQUIRES_NEW3.3 其他传播行为 四、事务隔离级别五、事务最佳实践5.1 正确设置事务边界5.2 合理使用…...
第2章、WPF窗体及其属性
1、窗体的宽与高。 2、启动窗体设置 3、窗体的启动位置设置 4、窗体图标更换 5、应用程序的图标更改 6、 7、窗体属性汇总: AllowsTransparency 类型: bool 描述: 该属性决定窗口是否可以有透明效果。如果设置为true,窗口的背景必须设置为Transpar…...
关于ModbusTCP/RTU协议对接Ethernet/IP(CIP)协议的方案
IGT-DSER智能网关模块支持西门子、倍福(BECKHOFF)、罗克韦尔AB,以及三菱、欧姆龙等各种品牌的PLC之间通讯,支持Ethernet/IP(CIP)、Profinet(S7),以及FINS、MC等工业自动化常用协议,同时也支持PLC与Modbus协议的工业机器人、智能仪…...
WPF 与 GMap.NET 结合实现雷达目标动态显示与地图绘制
概述 雷达上位机是雷达系统中用于数据可视化、分析和控制的核心软件。本文将介绍如何使用 C# 和 WPF 框架开发一个雷达上位机程序,主要功能包括: 显示目标轨迹:在界面上实时绘制雷达探测到的目标轨迹。点击显示详细信息:用户点击…...
A SURVEY ON POST-TRAINING OF LARGE LANGUAGE MODELS——大型语言模型的训练后优化综述——第2部分
3、微调(上一部分内容) 4、LLMs的对齐 大型语言模型(LLMs)中的对齐涉及引导模型输出以符合人类预期和偏好,特别是在安全关键或用户面对的应用程序中。本章讨论了实现对齐的三个主要范式: 带有反馈的人工…...
pytest快速入门 - 目录:半天掌握pytest
1 pytest快速入门 - 目录 本系列文章将快速的带领用户进入pytest领域,通过阅读本专栏,用户将可以熟练掌握pytest的基本用法,同时对测试前置条件的构造、后置条件的清理等有较深入的了解,特别是后置条件的执行完备度有一个认识。 …...
2018年全国职业院校技能大赛高职组-计算机网络应用竞赛竞赛样题C卷
目录 总体规划 模块二:设备基础信息配置 模块三:网络搭建与网络冗余备份方案部署 模块四:移动互联网搭建与网优 模块五:出口安全防护与远程接入 总体规划 CII教育公司在进行企业大学信息化建设的过程中,为了保证北京校区、广州校区与本部校区的日常OA办公通信等关键业务,…...
某大厂自动化工程师面试题
一些大厂的自动化工程师面试题汇总: 基础知识类 请解释什么是PLC(可编程逻辑控制器)?什么是PID控制?它在自动化系统中的作用是什么?请描述一下工业4.0的基本概念。编程与控制系统类 你熟悉哪些PLC编程语言?请举例说明。如何在SCADA系统中实现数据采集和监控?请解释一下…...
L1-7 统一命名规范(java)
你所在的公司刚刚招收了几位程序员,然而这些程序员之前在不同的公司工作,所以他们习惯的变量命名规范可能存在差异,需要让他们都习惯公司要求的命名规范,然而这样可能会降低他们的工作效率。 你的上司找到了你,希望你…...
ES6回顾:闭包->(优点:实现工厂函数、记忆化和异步实现)、(应用场景:Promise的then与catch的回调、async/await、柯里化函数)
闭包讲解 ES6回顾:闭包->(优点:实现工厂函数、记忆化和异步实现)、(应用场景:Promise的then与catch的回调、async/await、柯里化函数) 以下是与 JavaScript 闭包相关的常见考点整理,结合 Pro…...
zend server试用分析
文件:ZendServer-2021.4.1-multi-php-Windows_x86.exe 安装后可以试用30天,想分析下限制原理, 根据安装日志,发现了2个关键的文件: ZendServer\gui\module\Configuration\src\Configuration\License\Wrapper.php ZendServer\gu…...
C# NX二次开发:在多个体的模型中如何实现拉伸操作布尔减
大家好,今天接着上一篇拉伸文章去讲。 UF_MODL_create_extruded1 (view source) uf_list_p_tobjectsInputList of objects to be extruded.char *taper_angleInputTaper angle (in degrees).char *limit [ 2 ]InputLimit of extrusion. This is declared as: char …...
15 | 定义简洁架构 Store 层的数据类型
提示: 所有体系课见专栏:Go 项目开发极速入门实战课;欢迎加入 云原生 AI 实战 星球,12 高质量体系课、20 高质量实战项目助你在 AI 时代建立技术竞争力(聚焦于 Go、云原生、AI Infra);本节课最终…...
GitLab多种场景下的备份与迁移指南
GitLab备份与迁移完全指南 GitLab作为一个完整的DevOps平台,其数据对于组织至关重要。无论是版本升级、服务器迁移还是灾难恢复,掌握GitLab的备份和迁移技术都是系统管理员的必备技能。本文将详细介绍GitLab的备份策略和各种场景下的迁移方法。 目录 GitLab备份基础知识Omn…...
2.3 滑动窗口专题:最大连续1的个数 III(LeetCode 1004)
1. 题目链接 1004. 最大连续1的个数 III - 力扣(LeetCode)https://leetcode.cn/problems/max-consecutive-ones-iii/ 2. 题目描述 给定一个二进制数组 nums 和一个整数 k,允许将最多 k 个 0 翻转为 1,求翻转后最长的连续 1 …...
【微服务】Nacos 配置动态刷新(简易版)(附配置)
文章目录 1、实现方法2、配置依赖 yaml3、验证效果 1、实现方法 环境:Nacos、Java、SpringBoot等 主要是在boostrap.yaml中的data-id属性下配置refresh:true来实现动态更新 2、配置依赖 yaml 具体的版本参考官方的说明:官方版本说明 <!--读取boo…...
六十天前端强化训练之第二十天React Router 基础详解
欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗,谢谢大佬! 目录 一、核心概念 1.1 核心组件 1.2 路由模式对比 二、核心代码示例 2.1 基础路由配置 2.2 动态路由示例 2.3 嵌套路由实现 2.4 完整示例代码 三、关键功能实现效果 四、…...
