Linux部署MySQL8.0—手把手保姆级教程

👩🏽‍💻个人主页:阿木木AEcru

🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》

💹每一次技术突破,都是对自我能力的挑战和超越。

目录

    • 一、下载MySQL8.0安装包
    • 二、安装MySQL8.0
      • 2.1 解压安装包
      • 2.2 修改文件名称
      • 2.3 创建相关文件夹
      • 2.4 新增用户组
      • 2.5 新增组用户
    • 三、初始化数据库
    • 四、编写配置文件
    • 五、初始化mysql服务
    • 六、启动运行MySQL服务
      • 6.1 启动服务
      • 6.2 修改MySQL密码
      • 6.3 开启远程访问
      • 6.4 开启防火墙端口
      • 6.5 使用工具远程连接

精彩回顾

Docker部署MySql主从详细教程

SpringBoot整合ShardingSphere-JDBC 5.3.2 实现读写分离、分库分表。)

感兴趣的可以点赞收藏,以免后面找不到哦!!感谢您的支持 !!!

一、下载MySQL8.0安装包

MySQL官网 下载地址 下载之前可以查看一下系统的位数,下面有指令

查看系统的位数(32位或64位)

getconf LONG_BIT

我这里是64位的,所以这里我就下载64位, 可以在官网下载后上传上去,我这里就直接使用服务器下载了

sudo wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz

二、安装MySQL8.0

2.1 解压安装包

sudo tar xvJf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz

2.2 修改文件名称

sudo mv mysql-8.0.36-linux-glibc2.28-x86_64 mysql-8.0.36

2.3 创建相关文件夹

进入到mysql-8.0.36文件夹中

sudo mkdir data   # 数据存储
sudo mkdir log    # 日志存储
sudo mkdir tmp    # 临时文件

2.4 新增用户组

sudo groupadd mysql

2.5 新增组用户

sudo useradd -g mysql mysql

2.6 用户授权 指向mysql8.0安装目录

sudo chown -R mysql.mysql /usr/local/mysql8.0/mysql-8.0.36 
# 这里用自己实际的安装目录即可 可以通过  pwd  指令查看当前目录路径

三、初始化数据库

再安装目录下执行
sudo ./bin/mysqld --user=mysql --basedir=/usr/local/mysql8.0/mysql-8.0.36/ --datadir=/usr/local/mysql8.0/mysql-8.0.36/data/ --initialize ;

执行后 : 红色框框中的为 初始密码,这个需要记住

四、编写配置文件

vi /etc/my.cnf  
# 正常情况下是没有这个文件的,执行保存之后会自动创建

配置文件内容如下(文件路径记得改为自己的)


#[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d# MySQL客户端程序的配置部分
[mysql]
# MySQL安装的基本目录
#basedir=/usr/local/mysql8.0/mysql-8.0.36
# MySQL数据文件存放的目录
#datadir=/usr/local/mysql8.0/mysql-8.0.36/data/
# MySQL服务通信的socket文件位置
socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
# MySQL服务监听的端口号
port=3306
# 运行MySQL服务的用户名
user=mysql
# 跳过权限表,通常用于恢复或维护,不建议在生产环境中启用
#skip-grant-tables# 指定日志中的时间戳格式使用系统时间——建议不开启,开启后识别不到异常
#log_timestamps=SYSTEM# 指定默认字符集,utf8是兼容性较好的选择,但请根据实际情况调整
default-character-set=utf8# MySQL服务器程序的配置部分
[mysqld]
# MySQL服务器安装的基本目录
basedir=/usr/local/mysql8.0/mysql-8.0.36
# MySQL服务器数据文件存放的目录
datadir=/usr/local/mysql8.0/mysql-8.0.36/data
# MySQL服务器通信的socket文件位置
socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
# MySQL服务器监听的端口号
port=3306
# 运行MySQL服务器的用户名
user=mysql
# 确保日志中使用系统时间
log_timestamps=SYSTEM
# 设置服务器校对集,utf8_unicode_ci不区分大小写
collation-server = utf8_unicode_ci
# 设置服务器默认字符集
character-set-server = utf8# 指定默认的身份验证插件,以兼容老版本客户端
default_authentication_plugin= mysql_native_password# 此选项允许跳过权限表的认证,通常用于恢复或维护
#skip-grant-tables# MySQL服务器安全启动的配置部分
[mysqld_safe]
# mysqld_safe进程的日志文件位置
log-error=/usr/local/mysql8.0/mysql-8.0.36/log/mysqld_safe.err
# mysqld_safe的pid文件存放位置
pid-file=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysqld.pid
# mysqld_safe使用的socket文件位置
socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock# MySQL服务器启动脚本来使用的配置
[mysql.server]
# 如果需要,可以取消注释以指定MySQL的安装目录
#basedir=/usr/local/mysql8.0/mysql-8.0.36
# MySQL的数据文件存放目录
datadir=/usr/local/mysql8.0/mysql-8.0.36/data
# MySQL的socket文件位置
socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
# MySQL监听的端口号
port=3306
# 运行MySQL服务的用户名
user=mysql# MySQLadmin工具的配置部分
[mysqladmin]
# mysqladmin工具使用的socket文件位置
socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock

五、初始化mysql服务

sudo cp -a ./support-files/mysql.server /etc/init.d/mysqlsudo chmod +x /etc/init.d/mysqlsudo chkconfig --add mysql

指令作用如下

  1. cp -a ./support-files/mysql.server /etc/init.d/mysql:这条指令用于将MySQL服务器的启动脚本mysql.server从MySQL安装目录下的./support-files文件夹复制到系统的服务管理目录/etc/init.d,以便可以使用系统服务管理工具来控制MySQL服务。
  2. chmod +x /etc/init.d/mysql:这条指令用于给复制到/etc/init.d目录下的mysql脚本文件添加执行权限,确保它能够被系统调用执行启动、停止等操作。
  3. chkconfig --add mysql:这条指令用于将MySQL服务添加到系统服务的管理系统中,chkconfig是Red Hat系列Linux系统(如CentOS、RHEL)中用于管理服务的命令,–add选项表示添加一个新的服务。执行后,MySQL服务将能够通过service命令或systemctl(在使用systemd的系统上)进行启动、停止和重启。

检测一下是否成功

chkconfig --list mysql

如图所示表示成功

六、启动运行MySQL服务

6.1 启动服务

sudo service mysql start

这里启动后有出现错误信息

提示文件不存在之类的

sudo mkdir -p /usr/local/mysql8.0/mysql-8.0.36/log/
sudo chown mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/log/
sudo chmod 777 /usr/local/mysql8.0/mysql-8.0.36/log/
sudo chown mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/data/
sudo chmod 777 /usr/local/mysql8.0/mysql-8.0.36/data/
sudo chown mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/tmp/
sudo chmod 777 /usr/local/mysql8.0/mysql-8.0.36/tmp/执行以上命令 ,没有的文件就创建并且赋予权限,有的就直接赋予权限。

如果说还不行,则使用最简单粗暴的方法

sudo chown -R mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/
sudo chmod 777 -R  /usr/local/mysql8.0/mysql-8.0.36/使用递归的形式将 安装目录下的所有文件以及文件夹都开放所有权限

设置完成后重新执行启动指令

这时显示ok即可,也可以使用 service mysql status; 指令查询一下当前mysql的状态

6.2 修改MySQL密码

进入到安装目录下的bin目录
/usr/local/mysql8.0/mysql-8.0.36/bin登陆mysql
./mysql -uroot -p
输入初始化时候的临时密码登陆成功后执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

6.3 开启远程访问

在登陆MySQL环境下分别执行一下指令

CREATE USER 'root'@'%' IDENTIFIED BY '密码';
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;

6.4 开启防火墙端口

分别执行一下两条指令即可

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

注意:如果是云服务器,还需要再安全组开通对应的端口。

6.5 使用工具远程连接

感谢观看至此,希望该文章能够帮助到您提升知识和技能。如果您喜欢我的内容,请不要忘记点赞和分享哦!👍

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

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

相关文章

顺序栈着三种结构定义及其初始化

定义 顺序堆栈这三种结构定义及其初始化 - 知乎 (zhihu.com) 根据以上链接得到: 1.理解为数组,top是这个数组的索引值;定义这个结构体类型时,系统不分配空间 在主函数声明时,定义了关于这个结构体的变量&#xff0c…

python基础知识三(运算符、while循环、for循环)

目录 运算符: 算术运算符: 比较运算符: 赋值运算符: 逻辑运算符: 位运算符: 成员运算符: while循环: 1. while循环的语法: 2. while循环的执行过程&#xff1a…

Docker搭建Maven仓库Nexus

文章目录 一、简介二、Docker部署三、仓库配置四、用户使用Maven五、管理Docker镜像 一、简介 Nexus Repository Manager(简称Nexus)是一个强大的仓库管理器。 Nexus3支持maven、docker、npm、yum、apt等多种仓库的管理。 建立了 Maven 私服后&#xf…

新技术前沿-2024-国内主流AI大模型架构及应用场景深度分析

参考国内主流AI 大模型架构及应用场景深度分析 2024 1 厂商总览 1.1 国外 (1)Open AI:GPT-4【美国旧金山的人工智能研究公司】 GPT-4于2023年3月14日发布,是千亿级参数的多模态预训练模型,能够支持图像和文本的输入。 (2)Anthropic(人类的):Claude【美国人工智能初创公司…

【前端技术】HTML基础入门篇

1.1 HTML简介 ​ HTML(HyperText Markup Language:超文本标记语言)是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组…

【嵌入式AI部署神经网络】STM32CubeIDE上部署神经网络之指纹识别(Pytorch)——篇一|环境搭建与模型初步部署篇

前言:本篇主要讲解搭建所需环境,以及基于pytorch框架在stm32cubeide上部署神经网络,部署神经网络到STM32单片机,本篇实现初步部署模型,没有加入训练集与验证集,将在第二篇加入。篇二详细讲解STM32CubeIDE上…

NestJS必备:TypeORM对DB的操作

文章概叙 本文大概1300字,讲的是一些关于TypeORM的基础知识以及在NestJS中使用TypeORM操作DB的例子。 关于TypeORM TypeORM 是一个ORM框架,它可以运行在 NodeJS、Browser、Cordova、PhoneGap、Ionic、React Native、Expo 和 Electron 平台上&#xff0…

Kubectl常见排查pod问题命令

一.查看命名空间pod及其日志 #查看命名空间pod kubectl get pods -n <命名空间名称> #该命令不加-n命名空间名称&#xff0c;默认是查看default命名空间的pod#查看对应pod的日志kubectl logs -f <pod-name> -n <namespace>#同样的如果查看的是default命名空…

jasypt组件死锁bug案例分享

事故描述 1、上午9.55发布了一个Apollo动态配置参数&#xff1b; 2、片刻后&#xff0c;服务器接口开始出现大量的超时告警&#xff0c;似乎是某资源被耗尽不足分配&#xff1b; 3、正值业务请求高峰的上午十点&#xff08;平台上午10点会有一些活动会拉一波用户流量&#x…

使用eNSP进行路由策略与引入实验

一、实验拓扑 二、实验要求 1、按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 上使用 oopback 口模拟业务网段&#xff0c; 2、R2&#xff0c;R3 和 R4 运行 OSPF&#xff0c;各自协议内部互通2R1和R2运丁RIPv2 3、在 RIP 和 OSPF 间配黑双向路由引入&#…

按照以下步骤使用Transformer模型

“Transformer”是一种深度学习模型架构&#xff0c;用于处理序列数据&#xff0c;特别是在自然语言处理&#xff08;NLP&#xff09;领域中表现出色。它由Google Brain团队于2017年提出&#xff0c;并在机器翻译任务中取得了突破性的成果。Transformer的核心思想是完全基于自注…

捕捉信号的处理

文章目录 信号捕捉 信号捕捉 信号捕捉是进程从内核态返回用户态时会对信号进行检测处理。 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。由于信号处理函数的代码是在用户空间的,处理过程比较复杂,举例如下: 用户程序注册了SIGQUIT信号的处…

退役军人档案管理系统|DW-S403是一套成熟系统

退役军人档案管理系统是一种专门用于管理退役军人档案的信息系统&#xff0c;旨在提高退役军人档案的管理效率和利用价值。该系统采用先进的信息技术手段&#xff0c;对退役军人的档案进行全面、精准、高效的管理&#xff0c;为退役军人的就业、社保、优抚安置等提供有力支持。…

机器学习(XgBoost)预测顶和底

之前的文章中&#xff0c;我们对中证1000指数进行了顶和底的标注。这一篇我们将利用这份标注数据&#xff0c;实现机器学习预测顶和底&#xff0c;并探讨一些机器学习的原理。 我们选取的特征非常简单–上影线和WR&#xff08;William’s R&#xff09;的一个变种。选取这两个…

【python】python新闻文本数据统计和聚类 (源码+文本)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

Appium一本通

Appium介绍 概念&#xff1a;Appium是一个移动App(手机应用)自动化工具。 用途&#xff1a;重复性任务、爬虫、自动化测试。 特点&#xff1a;开源免费、多平台支持(ios\android)、多类型支持(native\webview)、类selenium支持多语言(java\python\js\ruby) Appium原理 三个主…

如何使用trackerjacker映射和跟踪分析WiFi网络设备

关于trackerjacker trackerjacker是一款针对WiFi无线网络的强大安全工具&#xff0c;该工具功能类似于Nmap&#xff0c;可以帮助广大研究人员映射未连接的WiFi网络&#xff0c;并进行设备跟踪。 该工具基于IEEE 802.11实现其功能&#xff0c;支持通过原始802.11实现网络映射和…

Prometheus blackbox_exporter 黑盒监控

概述 在监控体系里面&#xff0c;通常我们认为监控分为&#xff1a;白盒监控、黑盒监控。 黑盒监控&#xff1a;主要关注的现象&#xff0c;一般都是正在发生的东西&#xff0c;例如出现一个告警&#xff0c;业务接口不正常&#xff0c;那么这种监控就是站在用户的角度能看到的…

[vite] ts写配置根目录别名

参考:配置 Vite | Vite 写对象的形式吧 import { defineConfig } from vite import vue from vitejs/plugin-vue import path from path// https://vitejs.dev/config/ export default defineConfig({plugins: [vue()],resolve: {alias: {"": path.resolve(__dirname…

Datawhale ChatGPT基础科普

根据课程GitHub - datawhalechina/hugging-llm: HuggingLLM, Hugging Future. 摘写自己不懂得一些地方&#xff0c;具体可以再到以上项目地址 LM&#xff1a;这是ChatGPT的基石的基石。 Transformer&#xff1a;这是ChatGPT的基石&#xff0c;准确来说它的一部分是基石。 G…