12.MySql服务

目录

1. 什么是数据库

1.1. 数据:

1.2. 数据库:

2. mysql概述

3. 版本及下载

4. yum仓库安装

4.1. 添加yum源

4.2. 安装

5. 本地RPM包安装

5.1. 使用迅雷下载集合包

5.2. 上传数据

5.3. 安装

6. 生产环境中使用通用二进制包安装

6.1. 作用

6.2. 软件包下载

6.3. 使用xftp将软件包上传到根目录

6.4. 解压缩

6.5. 使用前的准备

6.6. 初始化软件

6.7. 设置mysql的配置文件

6.8. 配置启动脚本


1. 什么是数据库

1.1. 数据:

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

1.2. 数据库:

存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,总结为以下几点:

数据结构化

数据的共享性高,冗余度低,易扩充

数据独立性高

数据由 DBMS 统一管理和控制(安全性、完整性、并发控制、故障恢复)

2. mysql概述

MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购。

目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库

3. 版本及下载

MySQL数据库存在多种版本,不同的版本在不同的平台上:https://dev.mysql.com/downloads/mysql/

也可以选择MySQL对应版本的,找到安装教程,如MySQL5.7为例:https://dev.mysql.com/doc/refman/5.7/en/installing.html

4. yum仓库安装

4.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 »选择:MySQL Yum Repository

选择:MySQL Yum Repository

选择版本后下载yum源,注意:Euler22版本对应Centos8 即RedHat8

添加yum源

[root@server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm # 下载
[root@server ~]# rpm -ivh mysql80-community-release-el8-9.noarch.rpm # 安装
[root@server ~]# yum list | grep mysql

4.2. 安装

root@server ~]# yum install mysql-community-server.x86_64
[root@server ~]# systemctl start mysqld # 启动,注意有d
[root@server ~]# systemctl status mysqld
[root@server ~]# grep 'temporary password' /var/log/mysqld.log
2023-07-09T02:38:36.368700Z 6 [Note] [MY-010454] [Server] A temporary password is
generated for root@localhost: qQ6OmpD?8_.f # 查看初始登录密码
[root@server ~]# mysql -u root -p # 以root身份登录
Enter password: # 赋值初始登录密码
mysql> alter user 'root'@'localhost' identified by 'Admin123!'; # 设置新密码
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

5. 本地RPM包安装

5.1. 使用迅雷下载集合包

进入下载网站:https://downloads.mysql.com/archives/community/

如图:

5.2. 上传数据

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

5.3. 安装

6. 生产环境中使用通用二进制包安装

6.1. 作用

二进制包:源码包经过成功编译之后产生的包

优点:由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快

注意:在生产环境中通用二进制包安装方法较为常用

6.2. 软件包下载

网址:https://dev.mysql.com/downloads/mysql/

如图:

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

6.3. 使用xftp将软件包上传到根目录

6.4. 解压缩

[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

6.5. 使用前的准备

[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” 用户组的成员可以读取、写入和执行该目录

6.6. 初始化软件

[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 /usr/lib64/libncurses.so.5  #创建一个软连接[root@server ~]# ln -s /usr/lib64/libtinfo.so.6 /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.7. 设置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

6.8. 配置启动脚本

[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]# 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   #也可以PATH=$PATH:$HOME/bin:/usr/local/mysql/bin[root@server ~]# source ~/.bash_profile
[root@server ~]# mysql -uroot -p

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

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

相关文章

十一、常用API——练习

常用API——练习 练习1 键盘录入:练习2 算法水题:练习3 算法水题:练习4 算法水题:练习5 算法水题: 练习1 键盘录入: 键盘录入一些1~100之间的整数,并添加到集合中。 直到集合中所有数据和超过2…

​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 给你一个下…

汽车标定技术(十七)--Bypass的前世今生

目录 1.Bypass的诞生 2.Bypass的发扬光大 2.1 基于XCP的Bypassing 2.2 基于Debug的Bypass 2.3 小结 3.Bypass的实际应用 1.Bypass的诞生 下图我相信只要用过INCA的朋友都非常熟悉。 这是远古时期(2000年左右?我猜)ETAS针对发动机控制参数标定设计的一种并行数据…

opencv-python计算视频光流

光流基本概念 光流表示的是相邻两帧图像中每个像素的运动速度和运动方向。具体:光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系&#xf…

2023年全国职业院校技能大赛应用软件系统开发赛项(高职组)赛题第7套

竞赛说明 一、项目背景 党的二十大报告指出,要加快建设制造强国、数字中国,推动制造业高端化、智能化、绿色化发展。《IDC中国制造企业调研报告,2021》报告指出,制造执行系统(MES,Manufacturing Executio…

嵌入式Qt中实现http服务接收POST请求

嗨喽,大家好!以下知识点做个简单记录分享给小伙伴们! 首先我们来理解几个概念 websocket服务器和http服务器的区别 “ WebSocket服务器和HTTP服务器是两种不同的服务器类型,它们在协议、连接方式和通信模式等方面有所区别。 协议…

计算机网络-物理层设备(中继器 集线器)

文章目录 中继器中继器的功能再生数字信号和再生模拟信号同一个协议 集线器(多口中继器)不具备定向传输的原因集线器是共享式设备的原因集线器的所有接口都处于同一个碰撞域(冲突域)内的原因 小结 中继器 中继器的功能 中继器的…

中移(苏州)软件技术有限公司面试问题与解答(5)—— Linux进程调度参数调优是如何通过代码实际完成的1

接前一篇文章:中移(苏州)软件技术有限公司面试问题与解答(0)—— 面试感悟与问题记录 本文对于中移(苏州)软件技术有限公司面试问题中的“(11)Linux进程调度参数调优是如…

Expect交互工具与字符处理

目录 一、免交互应用 1. Here Document 1.1 定义与语法 1.2 注意事项 1.3 eof 1.4 tee 2. expect 2.1 定义与格式 2.2 expect基本命令 2.3 interact与expect eof区别演示(免交互ssh主机) 2.4 批量远程新建用户 二、字符处理 1. 字符串切片…

python爬虫爬取网站

流程: 1.指定url(获取网页的内容) 爬虫会向指定的URL发送HTTP请求,获取网页的HTML代码,然后解析HTML代码,提取出需要的信息,如文本、图片、链接等。爬虫请求URL的过程中,还可以设置请求头、请求参数、请求…

老卫带你学---Bazel学习笔记(一)

今天来开始学习Bazel这个工具,其实在Google等大公司都会推崇Bazel来作为自己项目构建以及测试的标准工具(标准玩法就是Monorepobazel主干开发) Bazel是什么 Bazel 是一个类似于 Make、Maven的开源构建和测试工具,支持多种语言多…

湘潭大学-计算机网络-补考

背景 卷面分23,平时分85,各占百分之50,最终54,遗憾挂科 大学第一次补考 计划 首先把湖科大教书匠的计算机网络视频看一遍,并做一些笔记 然后看教材 刚看到老师说最好的复习资料是书和课后作业(想起来…

EasyExcel使用,实体导入导出

简介 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中…

深入浅出AI落地应用分析:AI个人助手Monica

前言:铺天盖地的大模型以及所谓的应用到目前为止实际还是很少有像Monica这样贴合个人工作习惯的产品落地,比如像Chatgpt等这样的产品,绝大多数人不会专门买🪜翻墙出去用,而且大多数场景下素人或小白都不知道该怎么用,但是Monica这款产品就很好的以浏览器的插件的形式始终…

PyTorch][chapter 12][李宏毅深度学习][Semi-supervised Linear Methods-1]

这里面介绍半监督学习里面一些常用的方案: K-means ,HAC, PCA 等 目录: K-means HAC PCA 一 K-means 【预置条件】 N 个样本分成k 个 簇 step1: 初始化簇中心点 (随机从X中抽取k个样本点作为) Repeat: For all in X: 根据其到 &…

[Bug] [OpenAI] [TypeError: fetch failed] { cause: [Error: AggregateError] }

[Bug] [OpenAI] [TypeError: fetch failed] { cause: [Error: AggregateError] } ubuntu20 win10 edge浏览器访问 服务器部署 页面打开后想使用chatgpt报错了 rootcoal-pasi1cmp:/www/wwwroot/ChatGPT-Next-Web# PORT3000 yarn start yarn run v1.22.19 warning package.json:…

LeetCode160. 相交链表

160. 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,…

【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第23套

少儿编程 蓝桥杯青少组科技素养题真题及解析第23套 1、英国计算机科学家艾伦图灵于 1950 年提出了著名的“图灵测试”,用于判断计算机是否具有智能。“图灵测试”是通过()的方法进行判断的 A、让两台计算机对话 B、让人类与计算机对话 C、给计算机出题 D、让计算机分辨图…

力扣:122 买卖股票的最佳时机 II(贪心)

一. 链接:122. 买卖股票的最佳时机 II - 力扣(LeetCode) 二. 题目 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有…

【轮式平衡机器人】——TMS320F28069片内外设之ADC

一、ADC概述 这一部分不是我们的重点,原理分类啥的这里简要说明! 步骤:采样、保持、量化、编码 将采样电平(模拟值)转换为数字值的方法:直接比较型(并行ADC、逐次逼近型ADC)&…