MySOL数据库基础

news2024/11/25 21:37:02

一、数据库简介

1.数据库的特点

  • 存储大量信息,方便检索和访问。
  • 保持数据的完整性,一致性,降低数据冗余。
  • 应用共享和安全。

2.数据库的基本概念

数据:描述事物的符号记录,包括数字,文字,图形,图像,声音,档案记录。以“记录”的形式按照统一格式进行存储。

表:不同记录组织在一起,形成数据库的表,用来存储具体数据。

数据库:不同表组合形成的数据仓库,数据库是表的集合。

数据库管理系统(database  management  system ,DBMS):实现对数据库资源有效组织,管理和存取的系统软件。

数据库系统(database system ,DBS),一般有硬件,操作系统,数据库,DBMS,应用软件和数据库用户组成。用户可以通过DBMS操作数据库,也可以通过应用程序操作数据库。

数据库管理员:负责数据库的更新于备份,维护系统,保证系统的正常运行。

3.数据库的发展史

(1)初级阶段——第一代数据库

       20世纪60年代,第一代数据库出现,是层次模型与网状模型数据库系统,为统一管理和共享数据提供支撑,代表公司IBM公司提出研制层次模型数据库管理系统——IMS。

(2)中级阶段——第二代数据库

      20世纪70年代,第二代数据库是关系数据库,20世纪80年代,IBM关系数据库系统DB2出现,Oracle公司将Oracle移植到桌面计算机上,二代数据库系统的关系数据库,逐步开始取代层次模型与网状模型数据库。

(3)高级阶段——第三代数据库

       20世纪90年代,形成了多种数据系统共同支撑应用的局面。当然,在商务应用山还是关系数据库是主流。新的元素加入商务数据库系统中。例如:“关系——对象”数据库模型。

4.MySQL简介

      MySQL是一个关系型数据库管理系统,现被Oracle公司收购。MySQL运行于Linux操作系统之上,Apache和Nginx作为Web服务器,MySQL作为后台数据库,PHP/Perl/Python作为脚本解释器,组合成“LAMP”。

5.主键和外键

(1)主键

      数据表中每一行记录都必须是唯一性,通过定义主键(主关键字,Primary Key)保证数据的唯一性。

主键唯一标识表中的数据,一个主键对应一行数据,逐渐由一个或多个字段组成,具有唯一性。一个表中只有一个主键。一个属性集能唯一的表示一行而不含多余的属性,被称为候选键。可以有多个候选键,但是只有有一个候选键可以作为表的主键。如图:可以将编号定义为主键;编号,身份证号,姓名,专业编号定义为候选键。

(2)外键

一个数据库包含多个表,通过外键将表连接起来。外键用于建立和加强两个表中的连接。通过表中主键一列或多列添加到另一个表中,创建两个表中的链接,这个列称为第二个表的外键。

6.数据完整性规则

(1)实体完整性

(2)域完整性

(3)引用完整性

(4)用户定义完整性

二、MySQL二进制安装

<安装mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz>
[root@localhost ~]# tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 
[root@localhost ~]# yum -y install gcc libaio

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

创建运行用户
[root@localhost ~]# useradd -M -s /sbin/nologin mysql
关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/
[root@localhost ~]# vim /etc/selinux/config 

[root@localhost ~]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost mysql]# mkdir data   (创建数据文件)
[root@localhost mysql]# chown -R mysql:mysql data/

数据初始化
[root@localhost bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize

备注:
--user=mysql 指定程序用户
--basedir=/usr/local/mysql  安装目录
--datadir=/usr/local/mysql/data  数据文件
 --initialize 初始化

初始化完成之后会形成一个初始化密码。妥善保管,稍后使用

设置配置文件
[root@localhost ~]# 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.0.0.0
port=3306                        设置 3306 端口
skip-name-resolve             跳过名称解析
max_connections=2048        允许最大连接数
character-set-server=utf8        服务端使用的字符集默认为 utf8
default-storage-engine=INNODB            创建新表时将使用的默认存储引擎
lower_case_table_names=1                大小写不敏感

[mysqld_safe]
log-error=/usr/local/mysql/data/error.log

[root@localhost ~]# cd /usr/local/mysql/support-files/
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld

备注:
将mysql.server服务控制脚本cp到/etc/init.d/重命名为mysqld

[root@localhost ~]#vim /lib/systemd/system/mysqld.service

[Unit]
Description=mysqld
After=network.target

[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
ExecReload=/etc/init.d/mysqld reload
PrivateTmp=true

[install]
WantedBy=multi-user.target

[root@localhost ~]#systemctl daemon-reload
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# netstat -anpt | grep 3306

[root@localhost mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@localhost mysql]# mysql -uroot -p
Enter password:     (初始密码)
mysql> set password=password('pwd123');    设置新的密码
 

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

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

相关文章

问题-小技巧-python-一键装第三方库

有网但是没第三方环境的地方&#xff0c;能快速装上环境 代码&#xff1a; import osprint(开始安装模块...) #os.system(pip install &#xff08;在这敲上你需要装的库&#xff09; -i https://pypi.tuna.tsinghua.edu.cn/simple) os.system(pip install requests -i https…

密码没有未来

无密码认证的好处 引领无密码未来之路万能钥匙 英国通过具体法律打击可预测密码 强密码是抵御网络威胁的第一道防线 如何破解价值百万美元的加密钱包密码 复制此链接到微信打开阅读全部以发布文章 新 GPU 在不到一小时内打开了网络上 59% 的密码。 现代计算机的能力不断增…

024基于SSM+Jsp的超市管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

栈和递归介绍

在计算机科学中&#xff0c;栈&#xff08;Stack&#xff09;是一种常见的数据结构&#xff0c;它遵循后进先出&#xff08;Last In, First Out, LIFO&#xff09;的原则。栈可以用来实现递归&#xff08;Recursion&#xff09;&#xff0c;递归是一种自我调用的方法或函数。 栈…

使用Gradle查看Android项目中库的依赖关系

| | -- com.android.support:support-compat:25.3.1 | | | — com.android.support:support-annotations:25.3.1 | | -- com.android.support:support-media-compat:25.3.1 | | | -- com.android.support:support-annotations:25.3.1 | | | — com.android.support:support…

Flutter ListView详解

文章示例代码 ListView常用构造 ListView 我们可以直接使用ListView 它的实现也是直接返回最简单的列表结构&#xff0c;粗糙没有修饰。 ListView 默认构建 效果 ///默认构建 Widget listViewDefault(List list) { List _list new List(); for (int i 0; i < list.le…

Python17 多进程multiprocessing

1.多进程与多线程的区别 在Python中&#xff0c;多线程&#xff08;multithreading&#xff09;和多进程&#xff08;multiprocessing&#xff09;是两种并行执行任务的方式&#xff0c;它们有一些关键的区别&#xff1a; 进程和线程的基本区别&#xff1a; 进程&#xff1a;进…

「GPT源码探索」:从ChatPaper到学术论文GPT的二次开发实践

前言 本文的前两个部分最早是属于此旧文的《学术论文GPT的源码解读与微调&#xff1a;从ChatPaper到七月论文审稿GPT第1版》&#xff0c;但为了每一篇文章各自的内容更好的呈现&#xff0c;于是我今天做了以下三个改动 原来属于mamba第五部分的「Mamba近似工作之线性Transfor…

【计算机毕业设计】194高校学习助手微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

CSS属性选择器学习记录(4)

目录 1、CSS 属性 选择器 1.1、CSS [attribute|value] 选择器 1.2、实例 2、具有特定属性的HTML元素样式 3、属性选择器 4、属性和值选择器 5、属性和值的选择器 - 多值 6、表单样式 1、CSS 属性 选择器 顾名思义&#xff0c;CSS 属性选择器就是指可以根据元素的属性以…

ElasticSearch地理空间数据写入

目录 ElasticSearch地理空间数据写入思路介绍实现(geo_point)数据处理创建点的mappings使用Java将数据写入ES配置maven依赖项目配置ES数据写入查询数据实现(geo_shape)数据处理创建geo_shape的mappings使用Java将数据写入ES数据写入查询数据ElasticSearch地理空间数据写入 申明…

RIP动态路由配置

1、搭建网络 搭建拓扑、规划IP地址、划分网段、设置端口 2、配置交换机&#xff0c;路由器 三层交换机配置 Switch>enable Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname S3560S3560(config)#vlan 10 S3560(con…

Android 你应该知道的学习资源 进阶之路贵在坚持

coderzheaven 覆盖各种教程&#xff0c;关于Android基本时案例驱动的方式。 非常推荐 thenewcircle 貌似是个培训机构&#xff0c;多数是收费的&#xff0c;不过仍然有一些free resources值得你去挖掘。 coreservlets 虽然主打不是android&#xff0c;但是android的教程也​ 是…

基于ACO蚁群优化的城市最佳出行路径规划matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于ACO蚁群优化的城市最佳出行路径规划matlab仿真&#xff0c;可以修改城市个数&#xff0c;输出路径规划结果和ACO收敛曲线。 2.测试软件版本以及运行结果展示…

Day15 —— 大语言模型简介

大语言模型简介 大语言模型基本概述什么是大语言模型主要应用领域大语言模型的关键技术大语言模型的应用场景 NLP什么是NLPNLP的主要研究方向word2vecword2vec介绍word2vec的两种模型 全连接神经网络神经网络结构神经网络的激活函数解决神经网络过拟合问题的方法前向传播与反向…

Docker构建多平台镜像

docker的多架构镜像构建 目前很多服务器都是基于arm架构的&#xff0c;而现在大多数的docker镜像都是基于x86架构的。一种情况就是同样的代码编译成业务包做成镜像需要部署在不同架构的服务器上&#xff0c;这个时候我们就可以使用docker的多平台构建了。 以下操作是在centos7.…

LeetCode 671.二叉树第二小的结点

这个题我们可以用数组辅助完成&#xff0c;然后进行排序后&#xff0c;再用再进行取值&#xff0c;这是我的代码块: /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/void Preorde…

Flutter开发环境搭建和调试

[你的Flutter文件夹路径]\flutter\bin 这样我们的Flutter SDK的环境变量就配置完毕了。接下来在命令提示符窗口中输入命令&#xff1a; flutter doctor 它可以帮助我们检查Flutter环境变量是否设置成功&#xff0c;Android SDK是否下载以及配置好环境变量等等。如果有相关的…

SpringBoot配置第三方专业缓存技术Redis

Redis缓存技术 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存中数据结构存储系统&#xff0c;通常用作数据库、缓存和消息中间件。它支持多种数据结构&#xff0c;如字符串、哈希表、列表、集合、有序集合等&#xff0c;并提供了丰富的功能和灵活的…