linux下搭建MySQL8.0.25单机

2024-08-21 11:52

本文主要是介绍linux下搭建MySQL8.0.25单机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、环境的前提与说明

VM虚拟机:

image-20240819134329080

 cat /etc/redhat-release

image-20240819134447365

cat /proc/version

image-20240819134546245

查看防火墙状态:

systemctl status firewalld.service

image-20240819134745185

关闭命令:

systemctl stop firewalld.service

开机禁用防火墙自启命令 :

systemctl disable firewalld.service

是否有mysql残留

rpm -qa | grep -i mysql 
systemctl status mysqld.service

image-20240819135108398

ip a

image-20240819135308733

二、安装

2.1、MySQL的四大版本

  • MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。

  • MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。

  • MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个Server。需要在社区版或企业版的基础上使用。

  • MySQL Cluster CGE 高级集群版,需付费。

注意:本教程使用的MySQL的版本为8.0.25

2.2、Linux下安装MySQL几种方式

安装方式特点
rpm安装简单,灵活性差,无法灵活选择版本、升级
rpm repository安装包极小,版本安装简单灵活,升级方便,需要联网安装
通用二进制包安装比较复杂,灵活性高,平台通用性好
源码包安装最复杂,时间长,参数设置灵活,性能好

2.3、下载安装包

https://downloads.mysql.com/archives/community/

image-20240819141943522

RPM Bundle

image-20240819142042852

上传Linux

mkdir -p /opt/installingpackages  && cd /opt/installingpackages

image-20240819143017130

2.4、解压

tar -xvf mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar

image-20240819143437417

2.5、CentOS7下检查MySQL依赖

由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执行 :

chmod -R 777 /tmp

image-20240819143626577

依赖检查

rpm -qa|grep libaio
rpm -qa|grep net-tools

image-20240819144343456

我们安装下:

yum -y  install  net-tools
rpm -qa|grep net-tools

image-20240819144518988

2.6、安装

在mysql的安装文件目录下执行:(必须按照顺序执行)

rpm 是Redhat Package Manage缩写,通过RPM的管理,用户可以把源代码包装成以rpm为扩展名的文件形式,易于安装。

  • -i , --install 安装软件包
  • -v , --verbose 提供更多的详细信息输出
  • -h , --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm

image-20240819144830421

rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm

image-20240819144858749

yum remove mysql-libs 

image-20240819144941964

rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm

image-20240819145232670

2.6、查看MySQL的版本

mysql --version

或者

mysqladmin --version

image-20240819145432312

执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。

rpm -qa|grep -i mysql

image-20240819145611590

三、Mysql初始化与配置

3.1、初始化

为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:

mysqld --initialize --user=mysql

说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过期 ,登录后你需要设置一个新的密码。生成的临时密码会往日志中记录一份

查看密码:

cat /var/log/mysqld.log

image-20240819150023633

:j*OtkODP9sb

3.2、启动MySQL

mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个服务器进程

加不加.service后缀都可以

启动:

systemctl start mysqld.service

关闭:

systemctl stop mysqld.service

重启:

systemctl restart mysqld.service

查看状态:

systemctl status mysqld.service

image-20240819150533759

查看进程:

ps -ef | grep -i mysql

image-20240819150803170

查看MySQL服务是否自启动 :

systemctl list-unit-files|grep mysqld.service

image-20240819150837776

如不是enabled可以运行如下命令设置自启动

systemctl enable mysqld.service

如果希望不进行自启动,运行如下命令设置

systemctl disable mysqld.service

四、登录

4.1、首次登录

mysql -hlocalhost -P3306 -uroot -p 

image-20240819151115710

4.2、修改密码

因为初始化密码默认是过期的,所以查看数据库会报错

show  databases;

image-20240819151309120

image-20240819151400075

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  • 5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错
  • 改为更复杂的密码规则之后,设置成功,可以正常使用数据库了
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456@root';

image-20240819151514217

4.3、设置远程登录

image-20240819151744963

image-20240819151836108

D:\Software\DevelopSoftware\mysql-8.4.0-winx64\bin\mysql.exe -h 192.168.200.129 -P 3306 -u root -p

在用SQLyog或Navicat中配置远程连接Mysql数据库时遇到如上报错信息,这是由于Mysql配置了不支持远程连接引起的。

我们修改数据库

use mysql;
select Host,User from user;

image-20240819152118738

Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 %是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=% ,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。

update user set host = '%' where user ='root';
select Host,User from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456@root';

image-20240819152259627

Host修改完成后记得执行flush privileges使配置立即生效:

flush privileges;

image-20240819152326204

D:\Software\DevelopSoftware\mysql-8.4.0-winx64\bin\mysql.exe -h 192.168.200.129 -P 3306 -u root -p

image-20240819152400891

image-20240819152500076

这篇关于linux下搭建MySQL8.0.25单机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093081

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp