【mysql】centOS7安装mysql详细操作步骤!—通过tar包方式

news2025/3/17 3:17:50

【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';

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

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

相关文章

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&#xff1…

Linux 蓝牙音频软件栈实现分析

Linux 蓝牙音频软件栈实现分析 蓝牙协议栈简介蓝牙控制器探测BlueZ 插件系统及音频插件蓝牙协议栈简介 蓝牙协议栈是实现蓝牙通信功能的软件架构,它由多个层次组成,每一层负责特定的功能。蓝牙协议栈的设计遵循蓝牙标准 (由蓝牙技术联盟,Bluetooth SIG 定义),支持多种蓝牙…

PySide(PyQt),使用types.MethodType动态定义事件

以PySide(PyQt)的图片项为例,比如一个视窗的场景底图是一个QGraphicsPixmapItem,需要修改它的鼠标滚轮事件,以实现鼠标滚轮缩放显示的功能。为了达到这个目的,可以重新定义一个QGraphicsPixmapItem类,并重写它的wheelE…

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)中的对齐涉及引导模型输出以符合人类预期和偏好,特别是在安全关键或用户面对的应用程序中。本章讨论了实现对齐的三个主要范式: 带有反馈的人工…

某大厂自动化工程师面试题

一些大厂的自动化工程师面试题汇总: 基础知识类 请解释什么是PLC(可编程逻辑控制器)?什么是PID控制?它在自动化系统中的作用是什么?请描述一下工业4.0的基本概念。编程与控制系统类 你熟悉哪些PLC编程语言?请举例说明。如何在SCADA系统中实现数据采集和监控?请解释一下…

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);本节课最终…

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 …