小阿轩yx-MySQL数据库初体验

news2024/11/29 12:46:32

小阿轩yx-MySQL数据库初体验

数据库简介

21 世纪迈入了“信息爆炸时代”,大量的数据、信息在不断产生,伴随而来的就是如何安全、有效地存储、检索和管理它们。

对数据的有效存储、高效访问、方便共享和安全控制已经成为信息时代亟待解决的问题。

使用数据库的必要性

  • 可以高效且条理分明存储数据

好处

  • 能够更加快速、方便管理数据

数据库特点

  • 可以结构化存储大量的数据信息,方便用户进行有效的检索和访问
  • 可以有效地保持数据信息的一致性、完整性,降低数据几余
  • 可以满足应用的共享和安全方面的要求

数据库的基本概念

数据
  • 描述事物的符号记录
  • 以“记录”的形式按照统一的格式进行存储,相同格式和类型的数据统一放在一起

数据包括

  • 数字
  • 文字
  • 图形
  • 图像
  • 声音
  • 档案记录
数据库和数据库表
  • 不同的记录组织在一起形成数据库(Database,DB)的“表”(Table)
  • 表是存储数据的
数据库管理系统和数据库系统

数据库管理系统(Database Management System,DBMS)

  • 实现对数据库资源
  • 有效组织
  • 管理
  • 存取的系统软件
  • 它在操作系统的支持下,支持用户对数据库的各项操作

DBMS主要包括以下功能

  • 数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的转储与恢复、数据库的重组与性能监视等功能
  • 数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语义的错误数据被输入或输出
  • 数据操纵功能:包括数据查询统计和数据更新两个方面
  • 数据库的运行管理功能:这是数据库管理系统的核心部分,包括并发控制、存取控制、数据库内部维护等功能
  • 通信功能:DBMS 与其他软件系统之间的通信,如Access 能与其他 Office 组件进行数据交换

数据库系统

  • (Database System,DBS)是一个人与机器交互系统

一般由以下组成

  • 硬件
  • 操作系统
  • 数据库
  • DBMS
  • 应用软件
  • 数据库用户(包括数据库管理员)

用户可以通过 DBMS 操作数据库,也可以通过应用程序操作数据库。
应用程序

  • 利用 DBMS 为解决某个具体的管理或数据处理的任务而编制的一系列命令的有序集合

数据库应用软件

如果应用程序比较完善,能够提供友好的人机界面,并编译成可执行文件发行,使得普通用户不需要具备计算机的专业知识,在较短时间就学会使用

常用的数据库应用软件

  • 人事管理
  • 财务管理
  • 图书管理等信息管理软件
  • 及各类信息咨询系统等

数据库管理员

(Database Administrator,DBA)负责

  • 数据库的更新
  • 备份
  • 数据库系统的维护
  • 用户管理等工作,保证数据库系统的正常运行

DBA 人员优势

  • 业务水平较高
  • 资历较深

(注:数据库、数据库系统、数据库管理系统,甚至数据库表等名词,在日常讨论中通常不严格区别)

数据库发展史

数据库系统发展史

数据库技术最初产生于 20世纪 60年代中期,根据数据模型的发展

可以划分为三个阶段

  • 第一代的网状、层次数据库系统
  • 第二代的关系数据库系统
  • 第三代的以面向对象模型为主要特征的数据库系统
初级阶段—第一代数据库
  • 自 20世纪60年代起,第一代数据库系统问世
  • 它们是层次模型与网状模型的数据库系统
  • 为统一管理和共享数据提供了有力的支撑
中级阶段—第二代数据库
  • 20 世纪 70年代初,第二代数据库--关系数据库开始出现
  • 自 1970年 IBM 研究员德加·考特阐述了关系模型的概念后,IBM 大力投入关系数据库的研究

关系数据库

优势

  • 底层实现起来比较容易,所以很快被采用,并进入了众多商业数据库的研发计划

扩展

  • 0racle 就是当时应关系数据模型的出现而成立的一家专做(关系)数据库的公司
  • 20世纪 80年代初,IBM公司的关系数据库系统 DB2问世,而0racle 公司也将 0racle 数据库移植到桌面计算机上
高级阶段—第三代数据库

自20世纪80年代开始,各种适应不同领域的新型数据库系统不断涌现

  • 工程数据库
  • 多媒体数据库
  • 图形数据库
  • 智能数据库
  • 分布式数据库
  • 面向对象数据库等

特别是面向对象数据库系统

  • 由于其实用性强、适应面广而受到人们的青睐

20 世纪 90 年代后期,形成了多种数据库系统共同支撑应用的局面

在商务应用方面,依然还是关系数据库占主流。不过,已经有一些新的元素被添加进主流商务数据库系统中

经典数据模型
  • 数据是现实世界中“量”的抽象,而数据模型(Data Mode1)是数据特征的抽象
  • 在数据库系统中,数据模型是它的核心与基础
  • 数据模型表现为数据的结构、定义在其上的操作及约束条件
  • 它从概念层次上描述了系统的静态特征、动态特征和约束条件,为数据库系统的信息表示与操作提供了一个抽象框架

DBMS 的发展过程中出现的三种数据模型

  • 网状模型
  • 层次模型
  • 关系模型

由于受限于数学基础、编程技术和硬件条件最初出现的层次模型和网状模型与关系模型相比,在用户接口的上、中层部分更易于实现

数据模型所描述的内容包括三方面

  • 数据结构
  • 数据操作
  • 数据约束

三种经典数据模型介绍

网状模型

  • 适合表达复杂的数据关系
  • 也可以将数据几余减小到最小
  • 它的数据结构模型能直观反映现实中数据之间的联系

数据结构

  • 数据记录组织成图的形式,使用“数据结构图”进行抽象的分析和表示

它表示了下列基本关系

  • 一个银行客户可以拥有多个银行账号(一对多)。
  • 一个银行账号也可以被多个客户所有(一对多)。
  • 每个银行账户位于特定的银行支行(一对一)。

其中更蕴含着客户和银行之间多对多、多对一的关系。

这样复杂的数据关系,在网状模型上可以得到很好的支持。

数据操作

  • 网状模型的数据操作是建立在关系链基础上的导航式的操作
  • 针对一个特定的网状模型系统的数据结构,有可能找到最优的查询算法

缺点

  • 一旦结构发生变化,就需要新的查询办法
  • 网状模型以图论为基础,还无法得到一个通用的、高效的解决方案

数据约束
网状模型的数据约束是零散孤立的,或者分散在各个节点,或者集中成为一种关系链,

缺点

  • 容易导致不一致性或降低效率
  • 通常网状模型不具体实现数据约束,而由应用程序自身来实现数据约束
  • 这样的情况也使得在网状模型基础上的开发变得困难重重

层次模型

数据结构

  • 层次模型是网状模型的一个特例
  • 在层次模型中,数据记录组织成树的形式,使用“树结构图”进行抽象的分析和表示,适合一对多的关系模型

它包含了下列关系

  • 企业下辖多个部门(一对多)。
  • 部门下辖多个科室(一对多)。
  • 科室下辖多个小组(一对多)。

优点

  • 相对于网状模型,层次模型禁止了多对多和多对一的关系,使得它的数据结构相对简单

数据操作

  • 在层次模型上的数据操作不可避免地具有网状模型的特点——导航性
  • 由于禁止了多对一和多对多的关系,因此数据操作相对网状模型而言简单了许多。
  • 这样的结构有利于提高数据的查询效率,但数据存取上还存在着必须导航的要求。
  • 因此层次模型的数据库在数据操作上依然比较复杂。

数据约束

  • 层次模型的数据约束与网状模型相似

优势

  • 由于结构的简化,去掉了网状模型中多对多和多对一的关系,数据约束处理的复杂性按级数下降。

(注:层次模型的数据约束可以做到适当的系统实现,但很多还是依靠应用程序本身实现。)

层次模型的实现技术一直独领风骚

  • 比关系模型优越
  • 比网状模型简单

(注:它的代表是IBM公司的IMS系统。该系统曾是使用最早和最广的几个数据库之一,在历史上曾是最大的数据库之一

DB2长盛不衰的根源

  • 它的开发者是最早开始处理并发
  • 恢复
  • 完整性
  • 高效査询等问题
  • 其中的一些技术和思想应用到 DB2中

关系模型

数据结构

关系模型建立在关系代数的理论基础上,数据结构使用简单易懂的二维数据表,可以用简单的“实体-关系”(E-R)图来直接表示

  • 实体:也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”
  • 实体集:具有相同类型及共享相同性质的实体集合
  • 属性:实体所具有的某一特性,一个实体可以有多个属性

数据操作

对数据库的用户而言,关系模型使用从关系代数上抽象出来的数据库操作语言(DML)进行操作。结构化查询语言(SQL)就是其中最重要的一种,已经成为关系数据库的标准操作语言。

特色

  • 直接面向结果
  • 简化操作步骤
  • 使得数据库应用的设计变得非常简单易懂

对于数据库的物理结构而言,关系数据库系统的数据

  • 结构简单
  • 功能强
  • 数据独立性高
  • 理论基础坚实

严格的关系数据库以二维的数据库表作为基本数据结构,利用简单或复杂的索引技术实现查询算法,实现起来相对比较简单,也方便了预编译技术将 SQL 语言直接转化为有效的数据检索算法。

数据约束

  • 关系模型的
  • 可以针对实体
  • 也可以针对实体的属性
  • 还可以针对关系
  • 并可以在定义实体、实体属性和关系时全面实现

关系模型使用

  • 数据定义语言(DDL)
  • 关系模型在理论上对关系数据库核心实现的要求

缺点

  • 可以很容易实现
  • 效率并不高

区别比较

关系模型相比网状模型和层次模型

  • 有更为坚实和完整的理论基础

相比层次模型和网状模型而言

  • 关系模型与用户更靠近些

而网状模型和层次模型

  • 与底层实现的结合更紧密
当今主流数据库介绍
关系数据库

20世纪 80~90年代是关系数据库产品发展和竞争的时代

主流商用数据库

  • SQL Server
  • 0racle
  • IBM DB2
  • MySQL

SQL Server 简介

  • 是 Microsoft 公司的数据库产品
  • 在设计上大量利用了 Microsoft windows操作系统的底层结构
  • 直接面向Microsoft Windows,尤其是 Windows 系列服务器操作系统的用户
  • Microsoft Windows 拥有众多的用户群
  • Microsoft 所有的产品都遵循统一的操作习惯对数据库基本概念熟悉的 Windows用户

好处

  • 能快速学会使用 SQL Server
  • 上手比较容易

Windows 系统的易用性让数据库管理员可以

  • 更容易
  • 更方便
  • 更轻松进行管理

Oracle 简介

  • 成立于 1977年,最初就是专门的数据库公司
  • 1998年9月,0racle公司正式发布 0racle8i,“i”代表 Internet,这一版本中添加了大量为支持 Internet 而设计的特性。数据库用户提供了全方位的 Java 支持。
  • 2001年6月的 Oracle 0pen World大会中,Oracle 公司发布了 Oracle 9i,包含应用集群软件 Real Application Clusters(RAC)和商务智能(BI)功能。
  • 2004年2月,Oracle 公司发布了 Oracle 10g版本,“g”代表grid(网格)。最突出特性就是加入了网格计算的功能。
  • 2013年6月,Oracle 12C正式发布,提供了先进的技术堆管理、安全的数据库管理及企业级的服务管理,使企业能够快速实现私有云。

数据库领域 Oracle 公司在很长一段时间内一直处于领先地位,不仅数据库核心相当优秀,而且其相关的支持产品也相当完善和全面。

优势

  • Oracle能适应 70 多种操作系统,这也是其他产品难以企及的优势。

(注:随着云计算的发展,以Oracle 为代表的传统数据库正在逐渐失势

2019年10月15日亚马逊宣布永久关闭 Oracle 数据库业务

亚马逊关闭 Oracle 既是自身产业转型升级的需要

DB2 简介

  • 1970年,IBM 公司的一位研究员德加·考特发表论文,提出“关系模型”的概念。被称为“关系数据库之父”

MySQL 简介

  • 也是一个关系型数据库管理系统,现已被 0racle 公司收购。
  • 它与上述大型数据库相比,有不足之处,但是这丝毫没有减少它受欢迎的程度。

优势

  • MySQL 运行于 Linux 操作系统之上
  • MySQL 作为后台数据库
  • 免费或开源
  • 企业可以不花一分钱(除人工外)就能建立起一个稳定、高速的网站系统,业内称为“LAMP”
  • 以体积小、速度快、开源等特点,霸占了中小型网站相当大的市场

非关系数据库

  • 也被称作 NoSQL(Not 0nly SQL)
  • 存储数据不以关系模型为依据
  • 不需要固定的表格式

优点

  • 数据库高并发读写的需求
  • 对海量数据高效率存储与访问
  • 数据库的高扩展性与高可用性的需求

常用的非关系数据库

  • Memcached
  • Redis
  • MongoDB
  • HBase

关系数据库的基本概念

  • 基于关系模型的数据库系统
  • 是关系模型应用到数据库领域的实例化
  • 它的基本概念来自于关系模型

基本结构

  • 是多个二维表格,即反映事物及其联系的数据描述是以平面表格形式体现的。
  • 每个二维表中,每一行称为一条记录,用来描述一个对象的信息;
  • 每一列称为一个字段,用来描述对象的一个属性。数据表与数据库之间存在相应的关联,这些关联用来查询相关的数据

由数据表之间的关联组成

  • 数据表通常是一个由行和列组成的二维表,每一个数据表分别说明数据库中某一特定的方面或部分的对象及其属性。
  • 数据表中的行通常叫做记录或者元组,它代表众多具有相同属性的对象中的一个
  • 数据表中的列通常叫做字段或者属性,它代表相应数据库中存储对象的共有属性。
主键与外键
主键
  • 数据表中的每行记录都必须是唯一的,而不允许出现完全相同的记录,通过定义主键(主关键字,Primary Key)可以保证记录(实体)的唯一性。

注:

  • 键,即关键字,它是关系模型中一个非常重要的元素。
  • 主键唯一标识表中的行数据,一个主键值对应一行数据
  • 主键由一个或多个字段组成,其值具有唯一性,不允许取空值(NULL)
  • 一个表只能有一个主键
外键
  • 一个关系数据库通常包含多个表,通过外键(Foreign Key)可以使这些表关联起来。

注:

  • 外键是用于建立和加强两个表数据之间的链接的一列或多列
  • 通过将表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接
  • 这个列就称为第二个表的外键
数据完整性规则

维护数据库中的数据与现实世界的一致性,关系数据库的数据与更新操作必须遵守四类完整性规则

实体完整性规则
  • 实体完整性规则要求关系中的元组在主键的属性上不能有空值
  • 如果出现空值,那么主键值就起不到唯一标识元组的作用
域完整性规则
  • 也称列完整性,指定一个数据集对某一个列是否有效或确定是否允许空值
引用完整性规则
  • 如果两个表之间相互关联,那么引用完整性规则要求不允许引用不存在的元组
用户定义的完整性规则
  • 针对某一具体数据的约束条件,由应用环境决定
  • 它反映某一具体应用所涉及的数据必须满足的语义要求
  • 系统提供定义和检验这类完整性的机制,以便用统一的系统方法进行处理,不再由应用程序承担这项工作

MySQL 服务基础

  • 一个真正的多线程
  • 多用户的 SQL 数据库服务

成为服务器领域中最受欢迎的开源数据库系统

特性

  • 高性能
  • 高可靠
  • 易于使用

历程

  • 2008年以前,MySQL 项目由 MySQL AB 公司进行开发、发布和支持
  • 之后历经 Sun 公司收购 MySQL AB 公司,0racle 公司收购 Sun 公司的过程
  • 目前 MySQL, 项目由 0racle 公司负责运营和维护

MySQL 的编译安装

  • 确保 MySQL 数据库功能的完整性、可定制性,将采用源代码编译的方式安装MySQL, 数据库系统

其官方站点为 https://dev.mysql.com/

准备工作

注:如果系统中安装有mariadb,先卸载,如果没有,此步骤省略

[root@www ~]# rpm -q mariadb 
mariadb-5.5.52-1.el7.x86_64 
[root@www ~]# yum remove mariadb

注:centos系统默认安装了mariadb-libs包,这个包在/etc下生成了mariadb的配置文件my.cnf,所以系统中默认有一个my.cnf的配置文件

 安装mysql的依赖包

[root@www ~]# yum -y install gcc gcc-c++ ncurses-devel openssl openssl-devel

注:

ncurses是字符终端下屏幕控制的基本库,你在TTY下登录到主机上mysql需要的

OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份

安装cmake编译工具

[root@www ~]# tar zxf cmake-3.16.2.tar.gz 
[root@www ~]# cd cmake-3.16.2 
[root@www cmake-3.16.2]# ./configure 
[root@www cmake-3.16.2]# gmake && gmake install

安装boost库

[root@www ~]# tar zxvf boost_1_59_0.tar.gz 
[root@www ~]# mv boost_1_59_0/ /usr/local/boost

注:

Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。

Mysql使用c语言和c++语言写的

源码编译及安装mysql

创建运行用户

[root@www ~]# useradd -M -s /sbin/nologin mysql

解包

[root@www ~]# tar zxvf mysql-5.7.28.tar.gz 
[root@www ~]# cd mysql-5.7.28

配置

[root@www mysql-5.7.28]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DSYSCONFDIR=/etc-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_EXTRA_CHARSETS=all
-DWITH_BOOST=/usr/local/boost

注:

  • -DSYSCONFDIR:指定初始化配置文件目录。
  • -DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。
  • -DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。
  • -DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。
  • -DWITH_BOOST:指定 boost 库的位置,MySQL5.7 版本编译安装时必须添加这个参数。

注:

Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。

Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。

编译并安装

[root@www mysql-5.7.28]# make 
[root@www mysql-5.7.28]# make install

安装后的调整

建立配置文件

[root@www ~]# vim /etc/my.cnf 
[client] 
socket=/usr/local/mysql/data/mysql.sock 

[mysqld] 
socket=/usr/local/mysql/data/mysql.sock 
#绑定监听地址 0.0.0.0 
bind-address = 0.0.0.0 
skip-name-resolve 
#设置 3306 端口 
port = 3306 
# 设置 mysql 的安装目录 
basedir=/usr/local/mysql 
# 设置 mysql 数据库的数据的存放目录 
datadir=/usr/local/mysql/data
# 允许最大连接数 
max_connections=2048 
# 服务端使用的字符集默认为 utf8 
character-set-server=utf8 
# 创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB 
#表名大小写不敏感
lower_case_table_names=1 
#mysql服务允许接受的数据包最大值
max_allowed_packet=16M

[mysqld_safe]
log-error=/usr/local/mysql/data/error.log
#pid-file=/var/run/mariadb/mariadb.pid

注:

[mysqld_safe]

log-error=/usr/local/mysql/data/error.log

[mysqld_safe]下面的log-error只在用mysqld_safe启动时才会生成。

如果希望在初始化mysql后马上生成这个日志文件,可以将log-error写入到[mysqld] 中

初始化数据库

[root@www mysql-5.7.28]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

注:记下初始密码。要想重新初始化需要删除数据目录

设置环境变量

[root@www mysql-5.7.28]#echo "export PATH=$PATH:/usr/local/mysql/bin">> /etc/profile 
[root@www mysql-5.7.28]# . /etc/profile

添加系统服务

[root@www mysql-5.7.28]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
[root@www mysql-5.7.28]# chmod +x /etc/rc.d/init.d/mysqld

将 MySQL 添加为 systemd 标准服务,之后方便使用“systemctl”命令进管理

[root@www ~]# vim /lib/systemd/system/mysqld.service 
[Unit] 
Description=mysqld 
After=network.target 
[Service] 
Type=forking 
ExecStart=/etc/rc.d/init.d/mysqld start 
ExecReload=/etc/rc.d/init.d/mysqld restart 
ExecStop=/etc/rc.d/init.d/mysqld stop 
PrivateTmp=true 
[Install] 
WantedBy=multi-user.target
[root@www ~]# systemctl daemon-reload 
[root@www ~]# systemctl enable mysqld 
[root@www ~]# systemctl start mysqld
[root@www ~]# systemctl status mysqld
[root@www ~]# netstat -anpt | grep mysqld

源码包编译安装完成

访问 MySQL 数据库
[root@www ~]# mysql -u root -p
mysql>set password =password('pwd123');

MySQL 的二进制安装

基础环境准备

[root@www ~]# yum -y install gcc vim wget net-tools lrzsz libaio

注: libaio是linux版本的aio库,aio指的是异步io

创建运行用户

[root@www ~]# useradd -M -s /sbin/nologin mysql

关闭防火墙

[root@www ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
[root@www ~]# setenforce 0 
[root@www ~]# systemctl disable firewalld 
[root@www ~]# systemctl stop firewalld

二进制安装

[root@www ~]# tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 
[root@www ~]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql 
[root@www ~]# mkdir /usr/local/mysql/data 
[root@www ~]# chown -R mysql.mysql /usr/local/mysql/data 
[root@www ~]# cd /usr/local/mysql/bin 
[root@www ~]# ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

设定配置文件

[root@www ~]# vim /etc/my.cnf 
[client] 
socket=/usr/local/mysql/data/mysql.sock 

[mysqld] 
socket=/usr/local/mysql/data/mysql.sock 
bind-address = 0.0.0.0 
skip-name-resolve 
port = 3306 
basedir=/usr/local/mysql 
datadir=/usr/local/mysql/data 
max_connections=2048 
character-set-server=utf8 
default-storage-engine=INNODB 
lower_case_table_names=1 
max_allowed_packet=16M

[mysqld_safe]
log-error=/usr/local/mysql/data/error.log
#pid-file=/var/run/mariadb/mariadb.pid

注:skip-name-resolve :跳过名称解析

[root@www ~]# echo "export PATH=$PATH:/usr/local/mysql/bin">> /etc/profile 
[root@www ~]# . /etc/profile

配置 systemctl 方式启动

[root@www ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld 
[root@www ~]# chmod +x /etc/rc.d/init.d/mysqld
[root@www ~]# vim /lib/systemd/system/mysqld.service 
[Unit] 
Description=mysqld 
After=network.target 
[Service] 
Type=forking 
ExecStart=/etc/rc.d/init.d/mysqld start 
ExecReload=/etc/rc.d/init.d/mysqld restart 
ExecStop=/etc/rc.d/init.d/mysqld stop 
PrivateTmp=true 
[Install] 
WantedBy=multi-user.target

种类

解释

Type=oneshot

这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。

Type=notify

与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。

Type=dbus

若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。

Type=idle

systemd会等待所有任务处理完成后,才开始执行 idle 类型的单元。其他行为与 Type=simple 类似。

Type=forking

systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便 systemd 能够跟踪服务的主进程

Type=simple

systemd认为该服务将立即启动。服务进程不会 fork 。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket 激活型。

注:在linux中fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。

[root@www ~]# systemctl daemon-reload 
[root@www ~]# systemctl enable mysqld 
[root@www ~]# systemctl start mysqld 
[root@www~]# netstat -tunlp|grep 3306

访问 MySQL 数据库

[root@www ~]# mysql -u root -p
mysql>set password =password('pwd123');

退出“mysql>” 操作环境 

mysql>exit
Bye
[root@www ~]#

小阿轩yx-MySQL数据库初体验

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

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

相关文章

R语言——R语言基础

1、用repeat、for、while计算从1-10的所有整数的平方和 2、编写一个函数,给出两个正整数,计算他们的最小公倍数 3、编写一个函数,让用户输入姓名、年龄,得出他明年的年龄。用paste打印出来。例如:"Hi xiaoming …

域内攻击手法——域内用户枚举和密码喷洒

一、域内用户枚举 1、域内用户枚举原理 域内用户枚举可以在无域内有效凭据的情况下,枚举出域内存在的用户名,并对其进行密码喷洒攻击,以此获得域内的有效凭据,在 Kerberos 协议认证的 AS-REQ 阶段,客户端向 AS 发送的…

windows本地运行LLama3中文版

先到官网下载LM Studio 网址:LM Studio - Discover, download, and run local LLMs 下载完成后,直接点击运行。在页面搜索栏输入:llama3 chines 然后收获了如下错误信息:network error,怎么办?请转如下链接…

AI绘画-Stable Diffusion三次元人物模型训练(炼丹)教程,你也可以定制你的三上youya老师!

大家好,我是设计师阿威 (Stable diffusion生成的三上youya老师) 用AI进行画出不同人物,我们需要训练自己Lora模型。除了训练二次元人物之外,也常常要训练三次元人物。 比如福利姬老师可以训练自己然后穿上各种美美的…

The Sandbox 购入几大迷因币!

The Sandbox 是一个致力于支持虚拟艺术家和创作者的全球性社区。我们相信创意文化是开放式元宇宙的基石,我们会花时间参与并帮助 Web3 生态系统的发展,使其中的参与者受益。 为了进一步实现这一目标,我们购买了几种流行的 迷因币,…

【大模型驯化-Prompt】企业级大模型Prompt调试技巧与batch批量调用方法

【大模型驯化-Prompt】企业级大模型Prompt调试技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的博客个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注&#x…

『FPGA通信接口』LVDS接口(4)LVDS接收端设计

文章目录 1.LVDS接收端概述2逻辑框图3.xapp855训练代码解读4.接收端发送端联调5.传送门 1.LVDS接收端概述 接收端的传输模型各个属性应该与LVDS发送端各属性一致,例如,如果用于接收CMOS图像传感器的图像数据,则接收端程序的串化因子、通道个…

批量推送邮件如何高效实现?邮件推送技巧?

批量推送邮件有哪些注意事项?如何优化邮件推送效果? 无论是市场营销、客户服务还是内部沟通,批量推送邮件都发挥着关键作用。然而,如何高效实现批量推送邮件却是一个需要深思的问题。AokSend将探讨一些提高批量推送邮件效率的方法…

C++ GPU编程(英伟达CUDA)

安装编译环境 https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.85_windows.exe CMakeLists.txt cmake_minimum_required(VERSION 3.10)set(CMAKE_CXX_STANDARD 17) set(CMAKE_BUILD_TYPE Release) #set(CMAKE_CUDA_ARCHITECTUR…

手写方法实现字符串例如:“123“与整型例如:123相互转化(面试必会)

目录 二、字符串类型转化为整型 1. 初始化变量 2.定义字符串索引值 3.思考如何将字符1转化为数字1 4. 转化思路 5.考虑字符串转化负数例:-123456 6.完整代码 四、最后 一、前言 在c语言和c中,有许许多多的数据类型相互转化的方法,这里…

CARIS HIPS and SIPSv12 是专业的多波束水深数据和声呐图像处理软件

CARIS HIPS and SIPS是专业的多波束水深数据和声呐图像处理软件。CARIS HIPS and SIPS适用于海洋应用需求。其可靠性和可用性对多波束水深数据处理和声呐图像都是很重要的。CARIS HIPS用于处理多波束水深数据,CARIS SIPS用于处理侧扫声呐图像和多波束背向散射回波数…

卫星智慧停车导航系统有哪些优势

卫星智慧停车导航系统凭借其先进的技术和创新的理念,为现代城市停车问题提供了有效的解决方案。以下是卫星智慧停车导航系统的主要优势: 一、实时性与准确性 卫星智慧停车导航系统通过集成全球卫星定位系统(GPS)和地理信息系统(GIS),能够实时…

Redis 持久化策略

Redis 提供了多种持久化机制,用于将数据保存到磁盘中,以防止因服务器重启或故障而导致的数据丢失。主要的持久化策略有两种:RDB (Redis Database) 和 AOF (Append Only File),即当 Redis 服务器重新启动时,会读取相应的…

自研地面站!自主开源无人飞行系统 Prometheus V2 版重大升级详解

自主开源无人飞行系统 Prometheus V2 相对于 Prometheus V1 在多方面做了重大的升级,今天我们将聊聊 Prometheus V2 的地面站升级。 地面站的重大提升 熟悉 Prometheus 的小伙伴们可能知道,V1 版本是没有专门的地面站的。而在 Prometheus V2 中&#x…

【MAVEN学习 | 第2篇】Maven工程创建及核心功能

文章目录 一. 基于IDEA的Maven工程创建1.1 Maven工程GAVP属性(1)GroupID 格式(2)ArtifactID 格式(3)Version版本号格式(4)Packaging定义规则 1.2 IDEA构建Maven JavaSE工程1.3 IDEA构…

大模型培训 AUTOWEBGLM:自动网页导航智能体

大语言模型(LLMs)在智能代理任务中发挥着重要作用,尤其是在网络导航方面。然而,现有的代理在真实世界的网页上表现不佳,主要原因网络导航代理面临着三大挑战:网页上行动的多样性、HTML文本的处理限制以及开…

数据结构6---树

一、定义 树(Tree)是n(n>0)个结点的有限集。当n0时成为空树,在任意一棵非空树中: 1、有且仅有一个特定的称为根(Root)的结点; 2、当n>1时,其余结点可分为m(m>日)个互不相交的有限集T1、T2、...、 Tm,其中每一个集合本身又是一棵树,并且称为根的…

模块化沙箱

模块化沙箱是什么?模块化沙箱有什么作用? 模块化沙箱是一种高灵活性和高扩展性的数据安全产品,通过选择不同的沙箱模块,满足不同的安全需求。 同时,模块化沙箱也是零信任的重要一环,根据企事业单位各类国…

11、鸿蒙学习—UDID获取方法

一、手机的UDID获取方法如下: 1、打开“设置 > 关于手机”,多次点击版本号,打开开发者模式。 2、打开“设置 > 系统和更新”,在最下方找到“开发人员选项”,打开“USB调试”开关。 3、使用PC连接手机后&#…

网红和主播们是用的什么美颜工具?深入剖析美颜sdk与美颜Api

在现代社交媒体和直播平台的兴起中,网红和主播们依靠精美的外表吸引大量观众,获得高人气和收益已成为常态。这其中,美颜工具起到了至关重要的作用。这篇文章将深入剖析网红和主播们常用的美颜工具,特别是美颜SDK和美颜API的原理和…