MySQL的概念与安装

数据库是存储和管理数据的仓库,如关系型数据库以二维表格形式存储数据,支持SQL,适合结构化数据;非关系型数据库(NoSQL)则灵活多变,适用于大数据和高并发场景。MySQL是一款流行的开源关系型数据库,具备高性能和稳定性。
摘要由CSDN通过智能技术生成

数据库的基本概念:

什么是数据库

       数据库是一个用于存储和管理数据的仓库。数据按照特定的格式存储,可以对数据库中的数据进行增加、修改、删除和查询操作。数据库的本质是一个文件系统,按照一定的逻辑结构组织数据,以方便高效地访问和维护。

数据(Data)

描述事物的符号记录

包括数字文字图形图形声音档案记录等

以“记录”形式按照统一的格式进行存储

将不同的记录组织在一起

用来存储具体数据

表与表之间可以相互关联

数据库

表的集合,是存储数据的仓库

以一定的组织方式存储的相互有关的数据集合

什么是数据库管理系统

       数据库管理系统(DataBase Management System,DBMS)是一个操作和管理数据库的软件。它用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

数据库管理系统

是实现对数据库资源有效组织,管理和存取的系统软件

数据库系统

是一个人机系统,由硬件,OS,DBMS,数据库,应用软件和数据库用户组成

用户可以通过DBMS或应用程序操作数据库

数据库与数据库管理系统的关系

关系型数据库介绍

关系数据库系统是基于关系模型的数据库系统​

关系模型的数据结构使用简单易懂的二维数据表​

(1)每一行称为一条记录,用来描述一个对象的信息

(2)每一列称为一个字段,用来描述对象的一个属性

关系模型可用简单的"​​实体-关系-属性​​"来表示

下图中包含了实体(数据对象)、关系和属性三个要素

实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间

有一种关联关系

实体之间的联系:指不同实体之间联系。例:学生选课实体和学生基本信息实体之间

实体之间的联系用菱形框表示

实体:

也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”

如银行客户、银行账户等

属性:

实体所具有的某一特性,一个实体可以有多个属性

如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

联系:

实体集之间的对应关系称为联系,也称为关系

如银行客户和银行账户之间存在“储蓄”的关系

所有实体及实体之间联系的集合构成一个关系数据库

关系型数据库相关概念

关系数据库的存储结构是二维表格

关系Relational :关系就是二维表,其中:表中的行、列次序并不重要

行row:表中的每一行,又称为一条记录record,用来描述一个对象的信息

列column:表中的每一列,称为属性,字段,域field,用来描述一个对象的属性

主键Primary key:PK , 用于惟一确定一个记录的字段,一张表只有一个主键

域domain:属性的取值范围,如,性别只能是'男'和'女'两个值,人类的年龄只能0-150

关系数据库应用

关系型数据库

应用举例

Oracle, MySQL

12306用户信息系统

SQLServer、Sybase

淘宝账号系统

lnformix、access

联通手机号信息系统

DB2、FoxPRO

银行用户账号系统

PostgreSQL

网站用户信息系统

非关系数据库

非关系数据库也被称作NoSQL (Not Only SQL)

存储数据不以关系模型为依据,不需要固定的表格式

非关系型数据库的优点:

数据库可高并发读写

对海量数据高效率存储与访问

数据库具有高扩展性与高可用性

常用的非关系数据库:Redis,mongoDB等

关系型数据库与非关系型数据库的区别

关系型数据库

关系数据库结构是二维数据库表,二维表当中每个字段(列)用来描述对象的一个属性,每个记录(行)用来描述一个对象的信息(完整信息),关系数据库写到哪里也就是存储在硬盘当中读写系统就会受到的Io限制或者瓶颈

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织

优点:

(1)易于维护:都是使用表结构,格式一致

(2)使用方便:sQL语言通用,可用于复杂查询

(3)复杂操作:支持sQL,可用于一个表以及多个表之间非常复杂的查询

缺点:

(1)读写性能比较差,尤其是海量数据的高效率读写

(2)固定的表结构,灵活度稍欠

(3)高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈

非关系型数据库

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等

优点:

(1)格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等

(2)使用灵活,应用场景广泛,而关系型数据库则只支持基础类型

(3)速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘

(4)高扩展性

(5)成本低:nosql数据库部署简单,基本都是开源软件

缺点:

(1)不提供sql支持,学习和使用成本较高

(2)无事务处理

(3)数据结构相对复杂,复杂查询方面稍欠

MySQL数据库介绍

一款深受欢迎的开源关系型数据库

Oracle旗下的产品

遵守GPL协议,可以免费使用与修改

特点:

性能卓越、服务稳定

开源、无版权限制、成本低

多线程、多用户

基于C/S(客户端/服务器)架构

安全可靠

mysql日志文件用备份,恢复,是最核心部分

MySQL商业版与社区版

MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用

MySQL社区版是由分散在世界各地的MySQL开发者.爱好者一起开发与维护,可以免费使用

俩者的区别:

商业版组织管理与测试环节更加严格,会比社区版

更稳定商业版不遵守GPL,社区版遵从GPL可以免费使用

商业版可获得7*24小时的服务,社区版则没有

MySQL产品阵营

第一阵营:5.0-5.1阵营,可说是早期产品的延续

第二阵营:5.4-5.7阵营,整合了MySQL AB公司、社区和第三方公司开发的存储引擎,从而提高性能

第三阵营: 6.0-7.1阵营,就是MySQL Cluster版本,为适应新时代对数据库的集群需求而开发

安装MySQL

检查rpm安装数据库

rpm -qa | grep mariadb

rpm -e mariadb-libs --nodeps

安装依赖包

yum -y install ncurses-devel.x86_64 autoconf gcc gcc-c++ make openssl-devel

安装cmake

tar zxvf cmake-3.16.2.tar.gz -C /usr/src

cd /usr/src/cmake-3.16.2/

./configure && gmake -j 4 && gmake install

安装boost包

(MySQL5.7需要 Boost 库,所以也需要下载安装。这里下载 1_59_0 版本,这个 Boost

版本和 MySQL 的版本是相对应的。注意:在 cmake 的时候不添加-DWITH_BOOST 参数时,MySQL编 译 时 会 报 错 并 提 示 所 需 Boost 版 本 。)

tar zxvf boost_1_59_0.tar.gz

mv boost_1_59_0/ /usr/local/boost

安装mysql5.7.28

useradd -M -s /sbin/nologin mysql

tar zxvf mysql-5.7.28.tar.gz -C /usr/src

cd /usr/src/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

 -DCMAKE_INSTALL_PREFIX:指定将 MySQL 数据库程序安装到某目录下,如目录/usr/local/mysql。

 -DSYSCONFDIR:指定初始化配置文件目录。

 -DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。

 -DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。

 -DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。

 -DWITH_BOOST:指定 boost 库的位置,MySQL5.7 版本编译安装时必须添加这个参数。

make -j 4 && make install

配置配置文件

vim /etc/my.cnf

[client]

#客户端连接服务器通讯方式

socket=/usr/local/mysql/data/mysql.sock

[mysqld]

#数据库名称集群之前名称不能重复

server-id=1

#启用二进制文件,数据库配置时,使用的就是二进制文件

log-bin=mysql-bin

#转换二进制文件格式

binlog_format=MIXED

socket=/usr/local/mysql/data/mysql.sock

#绑定监听地址 0.0.0.0

bind-address = 0.0.0.0

#通过ip地址登录数据库

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

#不区分大小写,0为区分大小写

lower_case_table_names=1

#传输数据包时,数据包大小不能超过16M

max_allowed_packet=16M

初始化数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完成之后会随机生成一个root密码用于登录MySQL

如果初始化失败,要删除/usr/local/mysql/data/里面的初始化数据然后在重新初始化

设置环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin">> /etc/profile

. /etc/profile

添加系统服务

init版

cp support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

system版

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

systemctl daemon-reload

启动服务并验证

systemctl enable mysqld

systemctl start mysqld

systemctl status mysqld

netstat -anpt | grep 3306

进入数据库交互界面

mysql -u root -p

密码是初始化时给的随机密码

重新设置密码

set password =password('123456');

查看数据库的状态

\s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值