RHCE——十二、Mysql服务

news2024/11/19 14:50:21

Mysql服务

  • 一、什么是数据库
    • 1、数据:
    • 2、数据库:
  • 二、mysql概述
  • 三、版本及下载
  • 四、yum仓库安装
    • 1、添加yum源
    • 2、安装
    • 3、后续配置
  • 五、本地RPM包安装
    • 1、使用迅雷下载集合包
    • 2、上传数据
    • 3、安装
  • 六、生产环境中使用通用二进制包安装
    • 1、作用
    • 2、软件包下载
    • 3、使用xftp将软件包上传到根目录并解压缩
    • 4、使用前的准备
    • 5、初始化软件
    • 6、设置mysql的配置文件
    • 7、配置启动脚本

一、什么是数据库

1、数据:

  • 描述事物的符号记录, 可以是数字、 文字、图形、图像、声音、语言等,数据有多种形式,它们都可以经过数字化后存入计算机。

2、数据库:

  • 存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:
  • 数据结构化
  • 数据的共享性高,冗余度低,易扩充
  • 数据独立性高
  • 数据由 DBMS 统一管理和控制(安全性、完整性、并发控制、故障恢复)

二、mysql概述

  • MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购。
  • 目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
image-20230209104930480

三、版本及下载

  • MySQL数据库存在多种版本,不同的版本在不同的平台上:https://dev.mysql.com/downloads/mysql/
image-20230630151248453
  • 也可以选择MySQL对应版本的,找到安装教程,如MySQL5.7为例:https://dev.mysql.com/doc/refman/5.7/en/installing.html
image-20230630151351229

四、yum仓库安装

1、添加yum源

  • 访问官方:https://www.mysql.com/
  • 查看官方教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
  • 选择downloads页面的:MySQL Community (GPL) Downloads »

image-20230709105232305

  • 选择:MySQL Yum Repository

  • 选择版本后下载yum源

image-20230709105451884

  • 添加yum源
[root@server ~]# wget  https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm
[root@server ~]# rpm  -ivh  mysql80-community-release-el9-4.noarch.rpm
[root@server ~]# yum  list  |  grep  mysql

2、安装

[root@server ~]# yum  install  mysql-community-server.x86_64  -y

3、后续配置

[root@server ~]# systemctl start mysqld
[root@server ~]# systemctl enable mysqld
[root@server ~]# systemctl status mysqld
# 查找more初始登录密码
[root@server ~]# grep  'temporary password'   /var/log/mysqld.log 
2023-08-28T06:16:58.147434Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 8ahL5ZigYk#t
[root@server ~]# mysql  -uroot -p
Enter password:    # 粘贴默认初始密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.34
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show variables like 'validate_password.%';  # 查看密码设置默认的规则
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     | # ON时,账户及密码不能相同 
| validate_password.dictionary_file    |        | # 规则文件保存路径
| validate_password.length             | 8      | # 密码长度
| validate_password.mixed_case_count   | 1      | # 至少要包含大/小写字母的个数
| validate_password.number_count       | 1      | # 至少要包含数字的个数
| validate_password.policy             | MEDIUM | # 密码的验证强度等级
| validate_password.special_char_count | 1      | # 密码中特殊字符个数
+--------------------------------------+--------+
7 rows in set (0.01 sec)
# 默认为中级密码验证规则,密码长度8为,内容至少包含:一个大写字母、一个小写字母、一位数字和一个特殊字符
# 若密码不好记忆可以调低密码验证等级,在设置简单的密码,但生产中不推荐
mysql> set global validate_password.policy=low;
mysql> set global validate_password.length=6;
mysql> alter user 'root'@'localhost'  identified  by  '123456';
mysql> exit
Bye
[root@server ~]#  mysql -u root -p
Enter password:       # 密码为123456
mysql> show databases;    # 注意s和分号结尾
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
mysql> show global variables like 'port';      # 查看默认端口号
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+------+
1 row in set (0.00 sec)
mysql> quit
Bye

五、本地RPM包安装

1、使用迅雷下载集合包

  • 进入下载网站:https://downloads.mysql.com/archives/community/
  • 如图:
    image-20230709111134053
    image-20230709111233625

2、上传数据

  • 使用xftp将下载安装包上传到linux端

3、安装

在这里插入图片描述
在这里插入图片描述

[root@server ~]# cd  /
[root@server /]# tar  -xvf  mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar 
[root@server /]# cd  ~
[root@server ~]# systemctl start  mysqld
[root@server ~]# grep  'temporary password'   /var/log/mysqld.log 
2023-08-28T07:10:13.995223Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: u:Hr.Lt*c4kj
[root@server ~]# mysql  -uroot  -p
Enter password:    # 粘贴默认密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.32
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> alter user 'root'@'localhost'  identified by 'Admin123!';  # 修改密码
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
[root@server ~]# mysql  -uroot  -p
Enter password:   # 用Admin123!尝试登录

在这里插入图片描述

六、生产环境中使用通用二进制包安装

1、作用

  • 二进制包:源码包经过成功编译之后产生的包
  • 优点:由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快
  • 注意:在生产环境中通用二进制包安装方法较为常用

2、软件包下载

  • 网址:https://dev.mysql.com/downloads/mysql/
  • 如图:

image-20230713090705607

  • 根据上图系统参数里的glibc版本cpu架构选择对应的下载选项:

image-20230713090844566

3、使用xftp将软件包上传到根目录并解压缩

[root@server ~]# cd  /
[root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar
# 解压缩后有三个子包
# mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz:安装mysql必须的文件
# mysql-router-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz:官方提供的一个轻量级中间件,主要作用是在应用程序与MySQL服务器之间提供透明的路由方式,是高可用性 (HA) 解决方案的构建块
# mysql-test-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz:测试框架,用于做mysql 服务的单元,回归和一致性测试,并提供了运行单元测试和创建新单元测试的工具
# 继续解压缩
[root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz
[root@server /]# ls

在这里插入图片描述
在这里插入图片描述

4、使用前的准备

[root@server /]# mv mysql-8.0.33-linux-glibc2.17-x86_64-minimal /usr/local/mysql  # 移动到默认安装目录,也可自行修改
[root@server /]# cd /usr/local/mysql   
[root@server mysql]# groupadd mysql    # 创建名为mysql的用户组
[root@server mysql]# useradd -r -g mysql -s /bin/false mysql  # 创建名为 mysql的系统用户,将其添加到mysql用户组中,并设置其登录shell为/bin/false,以限制该用户的登录权限
[root@server mysql]# mkdir mysql-files   # 创建一个名为 mysql-files 的目录,用于存放MySQL数据文件,一般存储备份数据
[root@server mysql]# chown mysql:mysql mysql-files     # 将mysql-files目录的所有者和所属组设置为mysql用户和组
[root@server mysql]# chmod 750 mysql-files    # 设置mysql-files目录的权限为 750,以确保只有 “mysql” 用户组的成员可以读取、写入和执行该目录

在这里插入图片描述

5、初始化软件

[root@server mysql]# bin/mysqld --initialize --user=mysql  # 注意:需要复制密码
[root@server mysql]# bin/mysql_ssl_rsa_setup  # 支持ssl,用于安全通信
[root@server mysql]# bin/mysqld_safe --user=mysql &  # 使用后台方式以mysql用户身份启动 MySQL 服务器,mysqld_safe 是一个用于启动和监控 MySQL 服务器的脚本
# 注意:此时上述命令执行完毕处于后台运行状态,需要另行启动一个终端
[root@server ~]# ps  -ef | grep  mysql   # 查看进程运行状态
[root@server ~]# cd /usr/local/mysql
[root@server ~]# bin/mysql -u root -p   # 登录,可能报错
# 报错,需要找到下面的文件进行软连接
[root@server ~]# ln -s /usr/lib64/libncurses.so.6.2 /usr/lib64/libncurses.so.5
[root@server ~]# ln -s /usr/lib64/libtinfo.so.6.2  /usr/lib64/libtinfo.so.5
[root@server ~]# bin/mysql -u root -p
Enter password:   # 粘贴之前的初始密码
mysql> alter  user 'root'@'localhost'  identified  with  mysql_native_password by '123456';  修改密码
mysql> flush privileges;   # 刷新
mysql>exit
[root@server ~]# ps -ef | grep mysql
[root@server ~]# kill  -9  pid号   # 在当前终端关闭运行的mysql

在这里插入图片描述

6、设置mysql的配置文件

# 回到之前的终端,敲一个回车,显示进程以杀死
[root@server mysql]# vim /etc/my.cnf  # 新建配置文件,输入以下内容:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
server-id = 1
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
tmpdir = /tmp
socket = /tmp/mysql.sock
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
log_error = error.log

# 注意:以下是上述配置文件的解释
[client]      # 客户端设置
port = 3306   # 默认端口号
socket = /tmp/mysql.sock   # 启动套接字 

[mysqld]
###############################基础设置#####################################
server-id = 1      # Mysql服务的唯一编号 每个mysql服务Id需唯一
port = 3306        # 端口号 3306
basedir = /usr/local/mysql     # mysql安装根目录
datadir = /usr/local/mysql/data    # mysql数据文件所在位置 没有改目录则创建
tmpdir = /tmp    # 临时目录 比如load data infile会用到
socket = /tmp/mysql.sock   # 设置socke文件所在目录
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
###############################日志设置#####################################
#数据库错误日志文件
log_error = error.log

在这里插入图片描述

7、配置启动脚本

[root@server ~]# cd  /usr/local/mysql/support-files
[root@server support-files]# cp -a mysql.server /etc/init.d/mysql.server # 拷贝启动脚本,可能报错
[root@server support-files]# yum  install  chkconfig  # 安装修通服务配置的包
[root@server support-files]# cp -a mysql.server /etc/init.d/mysql.server
[root@server support-files]# cd  /etc/init.d  
[root@server init.d]# vim  mysql.server  # 增加=之后的内容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
[root@server init.d]# cd  ~ 
[root@server ~]# systemctl daemon-reload   # 重载系统配置
[root@server ~]# systemctl start mysql
[root@server ~]# vim  ~/.bash_profile   # 设置环境变量需添加如下语句
export PATH=$PATH:/usr/local/mysql/bin
[root@server ~]# source ~/.bash_profile
[root@server ~]# mysql  -uroot -p

原文件:
在这里插入图片描述
修改后:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

three.js(六):自适应设备分辨率

自适应设备分辨率 当今大多数的PC端和移动端显示器都是HD-DPI显示器。HD-DPI 是High Definition-Dots Per Inch 的简称,意思是高分辨率显示器。不同设备的显示器的分辨率是不一样的。 以上图中的iPhone6/7/8 为例:375*667 代表的手机的屏幕的物理尺寸&a…

Spring-5.0.x源码下载及本地环境搭建

一、Spring源码下载 从github上下载Spring的源代码 下载地址:https://github.com/spring-projects/spring-framework 访问地址之后,打开Spring的代码页面找到你想下载的版本,如5.0.x,如下图所示: 下载方式一&#x…

【08期】ArrayList常见面试题

简介 ArrayList是我们开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是线程不安全的,非常适合用于对元素进行查找,效率非常高。 线程安全性 对ArrayList的操作…

【计算机组成 课程笔记】1.2 冯·诺伊曼结构

课程链接: 计算机组成_北京大学_中国大学MOOC(慕课) 1 - 2 - 102-冯诺依曼结构的要点(13-59--)_哔哩哔哩_bilibili 现代的计算机形态各异,但究其本质,几乎全部采用了冯诺依曼结构。要了解计算机,首先要知道…

内网实战1

1、信息收集: 使用nmap做端口扫描: nmap -sV -Pn -T4 192.168.26.174重要端口:80、445、139、135、3306 目录扫描: 访问80端口:发现一个网站是phpstudy搭建的; 发现一个mysql数据库,那我们…

Spring boot中调用C/C++(dll)

添加JNA依赖 <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.5.0</version> </dependency>准备C代码/C代码 如下是C代码&#xff0c;文件名&#xff1a;xizi.c #include <std…

python的观察者模式案例

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言二、具体代码写在结尾 前言 最近写安卓的代码比较多&#xff0c;了解了java代码的注册回调机制&#xff0c;也就是观察者模式&#xff0c;搜索了一下python也有…

我的创作纪念日:进程的概念、组成、特征;进程的基本状态;进程切换、原子操作、原语;进程间通信的方式;共享缓冲区、消息队列的本质、管道通信

一、进程的概念 如何区分这三个QQ进程&#xff1f;》除了名称之外&#xff0c;OS使用pid来唯一标识进程 二、进程的组成 PCB当中存储的都是OS在对进程进行管理时候的有用信息 PCB是给OS使用的一个数据结构&#xff0c;而程序段和数据段是给进程自己使用的&#xff0c;PCB是进…

LoRA学习笔记

Background 全参微调 全量微调指的是&#xff0c;在下游任务的训练中&#xff0c;对预训练模型的每一个参数都做更新。例如图中&#xff0c;给出了Transformer的Q/K/V矩阵的全量微调示例&#xff0c;对每个矩阵来说&#xff0c;在微调时&#xff0c;其d*d个参数&#xff0c;都…

Java 8 新特性——Lambda 表达式(1)

Lambda 表达式&#xff08;Lambda expression&#xff09;是一个匿名函数&#xff0c;基于数学中的λ演算得名&#xff0c;也可称为闭包&#xff08;Closure&#xff09;。现在很多语言都支持 Lambda 表达式&#xff0c;如 C、C#、Java、 Python 和 JavaScript 等。Lambda 表达…

Linux服务器中创建SVN项目详细步骤

一、Linux服务器中的SVN安装和搭建项目环境可以参考一下文章: 1、《阿里云服务器搭建》------搭建SVN服务 2、在一个服务器的svn上&#xff0c;设置一个端口号对应一个项目 3、如何解决Linuxsvn无法显示日志的问题 二、Linux服务器中的SVN项目如何添加项目的忽略文件&#xff1…

asp、jsp环境安装

文章目录 phpasp安装环境打开asp大马 aspx修改配置打开aspx大马 jsp安装环境打开jsp大马 jspx php 在github下载138shell文件夹&#xff0c;解压后放入win10虚拟机&#xff0c;然后安装phpstudy&#xff08;在这里不再演示&#xff09;&#xff0c;并将php大马文件放在C:\phpS…

Python3的特殊容器库

诸神缄默不语-个人CSDN博文目录 文章目录 1. ordered-set库&#xff1a;有序集合2. collections库&#xff1a;特殊容器 1. ordered-set库&#xff1a;有序集合 ordered-set PyPI 安装方式&#xff1a;pip install ordered-set 使用&#xff1a; 输出&#xff1a;OrderedS…

C#_进程单例模式.秒懂Mutex

什么是Mutex? 可以定义调用线程是否具有互斥性&#xff0c;程序创建者拥有控制权&#xff0c;相反只能引用程序。 参数1&#xff1a;如果是程序创建者&#xff0c;就获得控制权。 参数2&#xff1a;名称&#xff0c;可使用GUID生成。 参数3&#xff1a;out 返回值&#xf…

c++(8.29)auto关键字,lambda表达式,数据类型转换,标准模板库,list,文件操作+Xmind

作业&#xff1a; 封装一个学生的类&#xff0c;定义一个学生这样类的vector容器, 里面存放学生对象&#xff08;至少3个&#xff09; 再把该容器中的对象&#xff0c;保存到文件中。 再把这些学生从文件中读取出来&#xff0c;放入另一个容器中并且遍历输出该容器里的学生。…

每天刷题五道RHCSA/1-5道(RedHat8.2)

1.第一题配置网络 nmcli con show #查看⽹卡信息 ​ nmcli con mod Wired connection 1 ipv4.method manual ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 #配置ip信息&#xff0c;中间⽤空格隔开 ​ nmcli con up Wired connection…

大型综合集团数字化转型解决方案PPT

导读&#xff1a;原文《大型综合集团数字化转型解决方案PPT》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 部分内容&#xff1a; 喜欢文章&#xff0c;您可以关注…

SAP_ABAP_OO_ALV案例

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977 一、OO_ ALV ,面向对象开发ALV报表 基于对收款清账平台的开发&#xff0c;解释 OO_ALV开发的程序结构与代码模板参考 1.1 代…

FrameBuffer 应用编程

目录 什么是FrameBufferLCD 的基础知识使用ioctl()获取屏幕参数信息使用mmap()将显示缓冲区映射到用户空间 LCD 应用编程练习之LCD 基本操作LCD 应用编程练习之显示BMP 图片BMP 图像介绍在LCD 上显示BMP 图像在开发板上测试 在LCD 上显示jpeg 图像在LCD 上显示png 图片LCD 横屏…

Ansible项目实战管理/了解项目环境/项目管理

一&#xff0c;项目环境 1.项目基础 项目过程 调研阶段 设计阶段 开发阶段 测试阶段 运营阶段 2.项目环境 个人开发环境 公司开发环境 项目测试环境 项目预发布环境 灰度环境&#xff1a;本身是生产环境&#xff0c;安装项目规划&#xff0c;最终所有的生产环境都发…