Linux中部署Mysql保姆级教程

一、版本说明

        本文的版本号是5.7.30,5.6及以上版本的MySQL要求Linux系统虚拟内存不能小于1G,否则MySQL可能无法运行。

二、安装前的准备

2.1查看系统自带的Mariadb

rpm -qa|grep mariadb

安装mysql为什么需要卸载mariadb:
        以前的Linux系统中数据库大部分是mysql,不过自从被sun收购之后,就没有集成在centos这些开源Linux系统中了,centos7 已经不支持mysql,内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。


2.2卸载系统自带的Mariadb

rpm -e --nodeps mariadb-libs-当前系统安装的版本


2.3确保系统已安装libaio

rpm -qa | grep libaio

 一般Linux系统默认就已安装,除非被手动卸载了

三、基于压缩包安装(推荐)

3.1解压压缩包

前置准备(在根目录下创建softWare文件夹,并进入到softWare文件夹下):

①在根目录下创建softWare文件夹

 mkdir /softWare

②进入到softWare文件夹下

 cd /softWare
3.1.1将压缩包(mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz)下载到softWare文件夹下

①方法一:将准备好的文件上传上去(推荐)

②方法二:通过wget下载

        wget命令如下:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz


3.1.2解压

确保压缩包文件已上传成功:

解压命令如下:

tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz


3.1.3将解压后的文件转移到/usr/local路径下,并改名为mysql

命令如下:

mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql


3.2修改配置

3.2.1创建数据存放目录

在/usr/local/mysql根目录下创建data文件夹,用于存在Mysql的数据

mkdir /usr/local/mysql/data


3.2.2查找MySQL的主配置文件 my.cnf 的位置

①进入到/usr/local/mysql/bin目录

cd /usr/local/mysql/bin

②查找Mysql的主配置文件路径

 ./mysql --help |grep 'my.cnf'

 在Linux系统中,/etc/my.cnf(注意是my.cnf而不是my.conf)是MySQL的主配置文件,它包含了数据库服务器运行所需的设置。这个文件可以包含各种配置指令,比如端口号、数据目录、日志文件位置、权限设置、性能优化参数等。


3.2.3编辑my.cnf文件 

执行vi /etc/my.cnf,复制并粘贴如下配置:

[mysql]
# 设置MySQL客户端的默认字符集为UTF-8
default-character-set=utf8[mysqld]
# MySQL服务器监听的端口号为3306
port=3306
# 设置MySQL服务器监听的Unix套接字文件路径为/tmp/mysql.sock。
# 这允许本地客户端通过套接字文件连接到MySQL服务器,而不是通过TCP/IP端口
socket=/tmp/mysql.sock
# 设置MySQL的安装根目录
basedir=/usr/local/mysql
# 设置MySQL数据库的数据存放目录
datadir=/usr/local/mysql/data
# 设置MySQL服务器允许的最大并发连接数为200。这个值可以根据服务器的性能和负载进行调整。
max_connections=200
# 设置mysql服务端字符集,默认为latin1。UTF8MB4是UTF-8的超集,支持更多的字符,包括表情符号。
character-set-server=UTF8MB4
# 设置MySQL服务器的默认存储引擎为InnoDB
default-storage-engine=INNODB
#设置MySQL用户的密码永不过期。默认情况下,MySQL会要求定期更改密码,设置为0表示禁用此功能。
default_password_lifetime=0
#设置MySQL服务器允许的最大数据包大小为16MB。
#这个值限制了单个SQL语句或数据包的大小,可以根据需要调整。
max_allowed_packet=16M

3.3创建用户与用户组

3.3.1创建mysql 用户组
groupadd mysql

3.3.2创建mysql用户
useradd -r -g mysql mysql
  • -r:创建一个系统账户。系统账户通常用于系统服务和守护进程,而不是人类用户。
  • -g:指定用户的初始用户组。在这个例子中,用户mysql将被添加到mysql组中。
  • mysql:这是要创建的用户名。

3.3.3将 /usr/local/mysql 目录及其所有子目录和文件的所有者和组都更改为 mysql 用户和 mysql 组
chown -R mysql:mysql /usr/local/mysql

3.4初始化Mysql

3.4.1进入到/usr/local/mysql/bin目录下
cd /usr/local/mysql/bin

3.4.2执行初始化
./mysqld --initialize --user=mysql

注意,初始话完成后root用户的临时密码会打印在控制台

A temporary password is generated for root@localhost: 打印的密码

vop-hY,293ah为临时密码(根据自己控制台输出)

3.5启动Mysql

3.5.1进入/usr/local/mysql/support-files目录
/usr/local/mysql/support-files

3.5.2启动mysql服务
./mysql.server start


3.5.3查看启动进程信息
ps -ef|grep mysql

3.6修改密码

初次登录MySQL数据库需要重置密码才能继续后面的数据库操作

3.6.1进入/usr/local/mysql/bin目录
cd /usr/local/mysql/bin

3.6.2登录mysql
./mysql -u root -p

密码为之前控制台输出的临时密码


3.6.3修改密码
alter user 'root'@'localhost' identified by '你的密码';
  • alter user:这是MySQL 5.7及以上版本中用于修改用户账户的命令。
  • 'root'@'localhost':这是要修改的用户账户,其中'root'是用户名,'localhost'是主机名。
  • identified by '你的密码':这部分指定了新的密码。

以指定了新的密码为'123456'为例:

alter user 'root'@'localhost' identified by '123456';

然后重新登陆如下:

3.7允许远程连接(可选)——实际部署内网可访问即可

MySQL数据库默认不允许远程连接,可通过如下步骤允许远程连接:

3.7.1切换到mysql数据库
use mysql;

3.7.2更新MySQL数据库中的用户权限
update user set host = '%' where user = 'root';

root用户的host字段设置为%,这意味着允许root用户从任何主机连接到数据库。


3.7.3刷新权限
FLUSH PRIVILEGES;

注意:如何需要对外连接,需要开通对应的端口


3.7.4远程连接可能出现的问题

远程连接MySQL,提示如下错误:

解决如下:

alter user 'root'@'%' identified with mysql_native_password by '123456';
  • 这条语句明确指定了使用mysql_native_password插件来验证密码。
  • 适用于需要从外部网络访问MySQL服务器的情况,确保使用传统的密码验证方式。

3.8设置开机自启(可选)

3.8.1将服务文件拷贝到 /etc/init.d下,并重命名为mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

3.8.2赋予可执行权限
chmod +x /etc/init.d/mysqld
3.8.3添加服务
chkconfig --add mysqld
3.8.4显示服务列表
chkconfig --list

注:如果看到mysqld的服务,并且3,4,5都是on的话则成功

如果是off,则执行:

chkconfig --level 345 mysqld on

四、基于yum源安装(不推荐)

4.1下载yum源的RPM安装包

打开mysql官网:MySQL

4.1.1按如下步骤,找到yum源RPM安装包的下载地址

找到系统对应的版本,右击复制链接地址 

本案复制到的例链接地址:https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm


4.1.2下载RPM安装包
yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

4.2把安装5.7的源打开, 关闭安装8.x的源(x会这新版本而更新)

4.2.1切换到yum源配置文件的路径下
 cd /etc/yum.repos.d/

下载好RPM包后会出现以下三个仓库:


4.2.2修改仓库配置文件
vim mysql-community.repo 

4.3安装mysql

yum -y install mysql-server

安装过程请检查版本是否正确,如果不正确,那么就是mysql-community.repo 仓库没有配置正确

4.4启动mysql

systemctl start mysqld

4.5查找临时密码

grep 'password' /var/log/mysqld.log

4.6修改密码

4.6.1进入mysql
mysql -u root -p

密码为临时密码 


4.6.2修改密码失败
alter user 'root'@'localhost' identified by '你的密码';
  • alter user:这是MySQL 5.7及以上版本中用于修改用户账户的命令。
  • 'root'@'localhost':这是要修改的用户账户,其中'root'是用户名,'localhost'是主机名。
  • identified by '你的密码':这部分指定了新的密码。

以指定了新的密码为'123456'为例:

alter user 'root'@'localhost' identified by '123456';


4.6.3修改密码校验策略

①仅检查密码长度

set global validate_password_policy=0;

validate_password_policy 是MySQL中的一个系统变量,用于控制密码验证策略的严格程度:

  • 0 或 LOW: 仅检查密码长度。
  • 1 或 MEDIUM: 检查密码长度、数字、小写字母、大写字母和特殊字符。
  • 2 或 STRONG: 在 MEDIUM 的基础上,还检查字典文件。

②设置密码的最小长度

SET GLOBAL validate_password_length = 1; 

validate_password_length是MySQL中的一个系统变量,用于设置密码的最小长度。将其设置为1意味着允许密码长度为1个字符

③再次修改密码

alter user 'root'@'localhost' identified by '123456';

4.7远程连接

同3.7

4.8yum安装mysql的一些默认路径

4.8.1数据目录

MySQL的数据目录通常位于/var/lib/mysql。这个目录包含了所有的数据库文件和表结构 

4.8.2配置文件

MySQL的主配置文件通常是my.cnf ,它可能位于/etc/my.cnf 或/etc/mysql/my.cnf 。这个文件包含了MySQL的各种配置选项 

4.8.3日志文件

MySQL的日志文件通常位于/var/log/mysqld.log 。这个文件记录了MySQL的运行日志,包括错误信息和启动信息 

4.8.4可执行文件

MySQL的可执行文件通常位于/usr/bin目录下,例如mysqlmysqladmin等 

4.8.5初始化脚本

MySQL的初始化脚本通常位于/etc/init.d/mysqld。这个脚本用于启动、停止和重启MySQL服务 

以上路径是通过YUM安装的MySQL的一些默认路径,但具体的路径可能会因不同的Linux发行版和安装方式而有所差异。

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

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

相关文章

ReactOS系统中搜索给定长度的空间地址区间中的二叉树

搜索给定长度的空间地址区间 //搜索给定长度的空间地址区间 MmFindGapTopDown PVOID NTAPI MmFindGap(PMADDRESS_SPACE AddressSpace,ULONG_PTR Length,ULONG_PTR Granularity,BOOLEAN TopDown );PMADDRESS_SPACE AddressSpace,//该进程用户空间 ULONG_PTR Length,//寻找的空…

java--网络编程

网络的相关概念 网络通信 1.概念:两台设备之间通过网络实现数据传输2.网络通信:将数据通过网络从一台设备传输到另一台设备3.java.net包下提供了一系列的类或接口,供程序员使用,完成网络通信 网络 概念:两台或多台设备通过一定物理设备连接…

P2-3与P2-4.【C语言基本数据类型、运算符和表达式】第三节与第四节

讲解视频: P2-3.【基本数据类型、运算符和表达式】第三节 P2-4.【基本数据类型、运算符和表达式】第四节 目录 必备知识与理论 任务实施 必备知识与理论 C语言中把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理。 其运算符和表达式数量之多&a…

PythonExcel批量pingIP地址

问题: 作为一个电气工程师(PLC),当设备掉线的时候,需要用ping工具来检查网线物理层是否可靠连接,当项目体量过大时,就不能一个手动输入命令了。 解决方案一: 使用CMD命令 for /L %…

ARM 中断控制器 GIC-V2

GIC-V2 中断控制器架构 参考文档:《ARMGeneric Interrupt Controller Architecture version 2.0》 GIC:Generic Interrupt Controller(GIC) 本文省略中断虚拟化相关章节。 1、Introduction(简介) 中断状态: The following states apply at each interface between the GI…

论文阅读_大型语言模型增强强化学习调查

中文标题:Survey on Large Language Model-Enhanced Reinforcement Learning: Concept, Taxonomy, and Methods 中文名称: 大型语言模型增强强化学习调查:概念、分类和方法 链接: https://arxiv.org/pdf/2404.00282 作者: Yuji Cao, Huan Zhao, Yuheng C…

ABAQUS应用11——支座弹簧

文章目录 0、背景1、ABAQUS中几类弹簧的简介2、SPRING1的性质初探 0、背景 1、ABAQUS中几类弹簧的简介 先说参考来源,ABAQUS2016的帮助文档里第4卷,32.1.1节,有三种弹簧(SPRING1 、SPRING2 以及SPRINGA)。 三种弹簧里…

基于LORA的一主多从监测系统_数据发送

数据上传我这里使用了问询的方式,这样的好处一是可以用来统计节点的存活状态,二是可以避免冲突,主节点通过向从节点发送问询帧,从节点收到问询帧后开始向主节点发送数据,同时我们也可以加入不同的帧类型,比…

DSVPN简介与应用

目录 简介 DSVPN 封装模式 Nomal(动态)方式建立DSVPN 一、配置缺省包过滤 二、划分区域(以总部为例) 三、配置IP地址(以R1为例) 四、配置DSVPN 简介 DSVPN DSVPN(Dynamic Secure Vir…

初识git · 基本操作

目录 前言: 基本操作 检查是否存在git 初始化仓库 认识三个区域 添加文件 查看.git文件 修改文件 版本回退 撤销操作 删除文件 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/suppor…

手撕布隆过滤器:原理解析与面试心得

前言 说来话长,话来说长。前些天我投了一些日常实习的简历,结果足足等了两个礼拜才收到面试通知,看来如今的行情确实是挺紧张的。当时我是满怀信心去的,心想这次一定要好好拷打面试官一番,结果没想到,自我…

美摄科技云服务解决方案,方案成熟,接入简单

美摄科技作为视频处理领域的先锋,凭借其强大的技术实力和深厚的行业经验,推出了成熟的云服务解决方案,为轻量化视频制作开辟了全新的道路。 一、成熟方案,接入无忧 美摄科技云服务解决方案的最大亮点在于其成熟度和易用性。我们…

java事务讲解(详解篇)

本篇博客将各位介绍事务的相关内容,也算是对事物的大部分知识点进行的一个总结,接下来就跟着我一起来学习学习吧~ 实现事务 实现事务的方式大类共有两大类,一种是编程式事务,另一种是声明式事务。 编程式事务的好处在于他的最小…

Postman 接口测试工具学习使用

目录 Postman 下载 postman界面详解 postman接口测试 操作步骤 postman发送post请求总结 postman断言 状态码断言 响应body正文断言(3种场景) 响应头断言 响应时间断言 postman集合测试 变量的应用 参数变量 1、环境变量 2、全局变量 3、局…

李德仁院士携实验室及大势文旅团队参加“湖北旅游、武当突破”名家谈,分享数智文旅发展新经验

10月12日上午,2024世界武当太极大会在湖北省十堰市武当山盛大开幕。 2023年国家科学技术最高奖获得者、中国科学院、中国工程院院士、武汉大学李德仁教授携测绘遥感信息工程国家重点实验室(后简称“实验室”)团队以及大势智慧文旅团队&#…

QUIC 协议的优势

QUIC 协议的优势包括: 快速建立连接:将传输层和加密层的握手合并,减少了连接建立的延迟。QUIC 建连时间大约为 0~1RTT,相比 HTTPS 的 3RTT 建连,具有极大的优势。客户端第一次建连的握手协商需 1RTT,而已建…

其他css的用途

1.animation-fill-mode: backwards; //避免了在动画开始前元素的突然显现,动画必要。 2.用rem响应式字体大小,可以在html样式定义font-size?(例10px,62.5%(100%是16px))。然后样式就可以用rem代替px。 3.color: transparent;: 这行代码将文…

【动手学深度学习】7.3 网络中的网络(NiN)(个人向笔记)

LeNet,AlexNet和VGG都有一个共同的设计模型:通过一系列卷积层和汇聚层来提取空间结构特征,然后通过全连接层对特征的表征进行处理AlexNet和VGG对LeNet的改进主要是在于如何扩大和加深这两个模块网络中的网络(NIN)提出了:在每个像素…

炒股VS炒游戏装备,哪个更好做

这个项目,赚个10%都是要被嫌弃的 虽然天天都在抒发自己对股市的看法,但自己自始至终也没有买进任何一支股票。之所以对这个话题感兴趣,着实是因为手上的游戏搬砖项目也是国际性买卖,跟国际形势,国际汇率挂钩&#xff0…

【D3.js in Action 3 精译_034】4.1 D3 中的坐标轴的创建(中篇):定义横纵坐标轴的比例尺

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可…