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/mysql

sudo chmod +x /etc/init.d/mysql

sudo 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://www.mfbz.cn/a/568481.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot的坑

问题:使用Autowired注入一个service,然后写了两个接口,第一个接口与请求时显示注入的service为空一直报错,但是第二个接口请求时service竟然不是空?在这里插入图片描述 凶手找到了,是private修饰。果然没仔…

HTB Runner

Runner User Nmap ──(root㉿kali)-[/home/…/machine/SeasonV/linux/Runner] └─# nmap -A runner.htb -T 4 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-22 23:07 EDT Stats: 0:00:01 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Sca…

OpenHarmony实战开发-内存快照Snapshot Profiler功能使用指导。

DevEco Studio集成的DevEco Profiler性能调优工具(以下简称为Profiler),提供Time、Allocation、Snapshot、CPU等场景化分析任务类型。内存快照(Snapshot)是一种用于分析应用程序内存使用情况的工具,通过记录…

鸿蒙OpenHarmony【小型系统运行案例】 (基于Hi3516开发板)

运行 启动系统 在完成Hi3516DV300的烧录后,还需要设置BootLoader引导程序,才能运行OpenHarmony系统。 在Hi3516DV300任务中,单击Configure bootloader(Boot OS)进行配置即可。 说明: DevEco Device Tool…

【大模型系列】预训练

数据 数据预处理 预处理流程: 原始语料库—>质量过滤(语种过滤、统计过滤、关键词过滤、分类器过滤)—>敏感内容过滤(有毒内容、隐私内容PII)—>数据去重(句子级别、文档级别、数据集级别&#…

【AI】【Python】pydantic库学习demo

因为工作中学习AI,然后包括看源码,以及看代码都使用到了pydantic库,因此下面是一些最主要的20%,以学会其80%的精髓。 pydantic 库是 python 中用于数据接口定义检查与设置管理的库。 pydantic 在运行时强制执行类型提示&#xff0…

内插和抽取

抽取: 频域表达式的关系: 1、角频率扩大M倍 2、移动2pi、22pi…(n-1) 2pi 3、相加 4、幅度变为1/M 内插: 加入低通滤波,减小混叠,但是由于截短,也会造成误差,但是…

【MySQL 数据宝典】【磁盘结构】- 004 redolog 重做日志

一、背景介绍 持久性要求: 对于已提交的事务,即使系统发生崩溃,其对数据库的更改也不能丢失。问题: 在事务提交前将所有修改的页面刷新到磁盘浪费资源。随机IO导致刷新速度慢。 解决方案: 【数据副本】记录事务执行过…

[Meachines][Easy]Bizness

Main $ nmap -p- 10.10.11.252 --min-rate 1000 $ dirsearch -u https://bizness.htb/ $ whatweb https://bizness.htb/control/login 存在一个未授权的RCE $ git clone https://github.com/jakabakos/Apache-OFBiz-Authentication-Bypass.git $ cd Apache-OFBiz-Authenticat…

java:观察者模式

java:观察者模式 1 前言 观察者模式,又被称为发布-订阅(Publish/Subscribe)模式,他定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所…

Visual Studio2022中使用水晶报表

1.创建水晶报表项目 选择需要的表 自动生成连接 选项:可跳过 后续还有一些 都能跳过 看你自己的需求 自己选的样式 自动生成 查看你的数据源,在选择数据集时已经有啦 不懂得可以看上集 字段可以直接拖,页面上的都是初始化选过的 点击生成 成功…

【系统架构师】-选择题(一)

1、信息系统规划方法中,关键成功因素法通过对关键成功因素的识别,找出实现目标所需要的关键信息集合,从而确定系统开发的 (优先次序) 。关键成功因素来源于组织的目标,通过组织的目标分解和关键成功因素识别…

docker容器内彻底移除iptables服务的实现方法

背景 我创建的容器使用的是centos6的标准镜像,所以内置了iptables服务。容器启动后iptables服务默认就启动了。iptables设置的规则默认是所有流量都无法通行。而对于服务器的管理使用的是宿主机的防火墙。这样就导致在实现用iptables动态给容器添加端口映射时不成功…

关于C++STL的总结(基础使用和底层原理)

STL是什么? STL即(Standard Template Library)标准模板库,提供了常见的数据结构和算法函数等,其下共包含六大组件: 容器算法迭代器仿函数适配器空间配置器 本篇重点介绍容器的使用和简单的底层实现原理&…

推荐六款图片编辑软件

图片编辑、抠图、拼图、压缩、放大、加字体、转格式等各种功能应有尽有,收藏这一篇就够了! 综合编辑:图片编辑助手 这是一款电脑软件,里面有超多图片处理功能,压缩图片到指定大小、消除任意位置的图片水印、按指定大小…

【C++】---STL之vector的模拟实现

【C】---STL之vector的模拟实现 一、vector在源码中的结构:二、vector类的实现:1、vector的构造2、析构3、拷贝构造4、赋值运算符重载5、迭代器6、operator[ ]7、size()8、capacity()9、reserve()10、resize()11、empty()12、push_back()13、pop_back()1…

如何在PostgreSQL中设置自动清理过期数据的策略

文章目录 方法一:使用临时表和定期清理步骤:示例代码:创建临时表:定期清理脚本(bash psql): 方法二:使用分区表和定期清理步骤:示例代码:创建分区表&#xf…

《内向者优势》:不要低估一个内向的人

#世界读书日 作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) ❤…

Redis篇:缓存更新策略最佳实践

前景: 缓存更新是redis为了节约内存而设计出来的一个东西,主要是因为内存数据宝贵,当我们向redis插入太多数据,此时就可能会导致缓存中的数据过多,所以redis会对部分数据进行更新,或者把他叫为淘汰更合适&a…

Vue3的监听属性watch和计算属性computed

监听属性watch 计算属性computed 一、监听属性watch watch 的第一个参数可以是不同形式的“数据源,watch 可以监听以下几种数据: 一个 ref (包括计算属性)、 一个响应式对象、 一个 getter 函数、 或多个数据源组成的数组 watch 的参数:监视的回调&…
最新文章