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

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

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

相关文章

[新能源]新能源汽车快充与慢充说明

接口示意图 慢充接口为交流充电口(七孔),快充接口为直流充电口(九孔)。 引脚说明 上图给的是充电口的引脚图,充电枪的为镜像的。 慢充接口引脚说明 快充接口引脚说明 充电流程 慢充示意图 慢充&…

Android第二次面试总结(项目拷打理论篇)

(一)理论基础 LiveData 和 ViewModel 是 Android 架构组件中的重要部分,它们在构建响应式、生命周期感知的 Android 应用程序中发挥着关键作用。下面分别介绍它们的原理。 LiveData 原理 1. 概述 LiveData 是一种可观察的数据持有者类&…

MyBatis SqlSessionFactory 是如何创建的?

SqlSessionFactory 是 MyBatis 的核心接口之一,它是创建 SqlSession 实例的工厂。 SqlSession 实例是 MyBatis 与数据库交互的主要接口,负责执行 SQL 语句、管理事务等。 SqlSessionFactory 的创建过程主要由 SqlSessionFactoryBuilder 类负责。 SqlSes…

玩转python:通俗易懂掌握高级数据结构-collections模块之Counter

引言 Counter是Python中collections模块提供的一个强大工具,用于统计可哈希对象的出现次数。它非常适合用于频率统计、词频分析、数据聚合等场景。本文将详细介绍Counter的关键用法和特性,并通过8个丰富的案例帮助读者掌握其应用。 关键用法和特性表格 …

DeepSeek面试——分词算法

DeepSeek-V3 分词算法 一、核心算法:字节级BPE(Byte-level BPE,BBPE) DeepSeek-V3 采用 字节级BPE(BBPE) 作为核心分词算法,这是对传统 BPE(Byte Pair Encoding)算法的…

机器学习——正则化、欠拟合、过拟合、学习曲线

过拟合(overfitting):模型只能拟合训练数据的状态。即过度训练。 避免过拟合的几种方法: ①增加全部训练数据的数量(最为有效的方式) ②使用简单的模型(简单的模型学不够,复杂的模型学的太多&am…

Python:函数(一)

python函数相关的知识点 1. 函数定义与调用 定义:使用 def 关键字,后接函数名和参数列表。 def greet(name):"""打印问候语(文档字符串)"""print(f"Hello, {name}!") 调用&#xff1a…

关于Flutter中两种Widget的生命周期详解

目录 一、StatelessWidget 生命周期 二、StatefulWidget 生命周期 1. 创建阶段 2. State初始化阶段 3. 构建阶段 4. 更新阶段 5. 销毁阶段 三、核心对比与常见陷阱 四、面试回答技巧 以下是Flutter中两种核心Widget(StatelessWidget和StatefulWidget)生命周…

Linux 》》Ubuntu 18 LTS 之后的版本 修改IP地址 主机名

进入目录 /etc/netplan 修改 50-cloud-init.yaml 》保存文件后,执行以下命令应用更改: sudo netplan apply 》》 DHCP模式 修改主机名 hostnamectl set-hostname xxxx 修改cloud.cfg 防止重启主机名还原 但测试下来 不修改, 重启 也不会还…

C++基础 [三] - 面向对象三

初始化列表 首先,初始化列表是我们的祖师爷本贾尼博士为了解决在某些成员变量在定义时必须初始化的情况。这个初始化列表其实发生在构造函数之前,也就是实例化整个对象时先对所有的成员都进行了初始化 初始化的概念区分 在之前的博客学习中&#xff…

55年免费用!RevoUninstaller Pro专业版限时领取

今天,我要给大家介绍一款超给力的卸载工具——RevoUninstaller Pro。这是一款由保加利亚团队精心打造的专业级卸载软件,堪称软件卸载界的“神器”。 RevoUninstaller分为免费版和专业版。专业版功能更为强大,但通常需要付费才能解锁全部功能。…

目前人工智能的发展,判断10年、20年后的人工智能发展的主要方向,或者带动的主要产业

根据2025年的最新行业研究和技术演进趋势,结合历史发展轨迹,未来10-20年人工智能发展的主要方向及带动的产业将呈现以下六大核心趋势: 一、算力革命与底层架构优化 核心地位:算力将成为类似“新能源电池”的基础设施,…

【机器人】复现 ASGrasp 通用透明物体重建、6-DoF抓取预测

在机器人抓取领域,透明和镜面物体的抓取一直是个难题。 ASGrasp核心是两层学习型立体网络,能够同时恢复透明和镜面物体的可见部分和不可见部分的深度信息。 然后融合两层深度信息,进行重建物体,得到点云信息作为GSNet&#xff0…

2. qt写带有槽的登录界面(c++)

我们在1.Qt写简单的登录界面(c)_c qt 设计一个简单界面-CSDN博客中写了个简单的登录界面&#xff0c;但没有槽&#xff0c;在这里写一个带有槽的界面。 1.代码 代码目录如下&#xff1a; main.cpp的代码如下&#xff1a; #include "MainWindow.h" #include <Qt…

windows安装两个或多个JDK,并实现自由切换

我用两个JDK来做演示&#xff0c;分别是JDK8和JDK17(本人已安装JDK8&#xff0c;所以这里只演示JDK17的安装)。 1、下载JDK17安装 Java Downloads | Oracle 2、安装JDK17,这里忽略。直接双击软件&#xff0c;点击下一步就可以。 3、配置环境变量 在系统变量中新建一个CLASSP…

【2025最新】深度学习框架PyTorch——从入门到精通(1)下载与安装

又名&#xff1a;芜湖起飞侠的PyTorch学习记录——从起飞到坠毁 简介安装内容总览安装AnacondaAnaconda简介Anaconda下载配置环境变量验证其他配置安装matplotlib 安装 CUDA安装之前安装cuDNN 安装torchCPU 版本安装GPU 版本安装通过pip安装&#xff08;不推荐&#xff09;通过…

C++数据结构1——栈结构详解

一、栈的基本概念与特性 1. 栈的定义与特点 栈&#xff08;Stack&#xff09;是一种遵循后进先出&#xff08;LIFO, Last In First Out&#xff09;原则的线性数据结构&#xff0c;其核心特征包括&#xff1a; 单端操作&#xff1a;所有操作仅通过栈顶进行 动态存储&#xf…

【Python 数据结构 15.哈希表】

目录 一、哈希表的基本概念 1.哈希表的概念 2.键值对的概念 3.哈希函数的概念 4.哈希冲突的概念 5.常用的哈希函数 Ⅰ、直接定址法 Ⅱ、平方取中法 Ⅲ、折叠法 Ⅳ、除留余数法 Ⅴ、位与法 6.哈希冲突的解决方案 Ⅰ、开放定址法 Ⅱ、链地址法 7.哈希表的初始化 8.哈希表的元素插…

历年云南大学计算机复试上机真题

历年云南大学计算机复试机试真题 在线评测&#xff1a;传送门&#xff1a;pgcode.cn 喝饮料 题目描述 商店里有 n 中饮料&#xff0c;第 i 种饮料有 mi 毫升&#xff0c;价格为 wi。 小明现在手里有 x 元&#xff0c;他想吃尽量多的饮料&#xff0c;于是向你寻求帮助&#x…

[文献阅读] 可变形卷积DCN - Deformable Convolutional Networks

**文献信息&#xff1a;**Deformable Convolutional Networks arxiv.org/abs/1703.06211 发表于ICCV 2017&#xff0c;提出了可变形卷积DCN&#xff08;Deformable ConvNets&#xff09; 摘要 卷积神经网络&#xff08;CNN&#xff09;由于其构建模块固定的几何结构天然地局限…