一、什么是数据库?数据库的功能是什么?
·存储数据的仓库 DB(DataBase)
·数据库管理系统 DBMS
·对书库进行增、删、改、查
·数据(data):对客观事务的记录,数字、文字、图形、符号、声音、视频……
·信息(info):经过加工后的数据
二、数据库的分类?
·模型:
·关系模型
·非关系模型
·部署:
·本地
·云
·用途:
·OLTP:在线事务处理
·OLAP:在线分析处理
·HATP:混合
·架构:
·集中式
·分布式
·云原生
·介质:
·磁盘
·内存
三、关系型数据库和非关系数据库的区别?
结构化数据:例如:表格由行和列组成,每一列都要固定的格式和类型。
半结构数据:例如:html、xml、json、yaml
非结构化数据:聊天记录、评论……
|
数据库类型 |
存储模式 |
访问手段 |
典型代表 |
|
关系型数据库RDBMS |
结构化存储 |
SQL语句 |
Oracle、MySQL、Microsoft SQL Server、PostgreSQL、Snowflake、IBM Db2、SQLite |
|
非关系型数据库NoSQL |
非结构化存储、半结构化存储 |
不仅仅是SQL |
MongoDB:文档数据库、适合存储JSON数据。 Redis:内存型数据库,适合做缓存。 Elasticsearch:适合全文搜索。 |
四、了解数据库top10?国产信创数据库有哪些?
1.Oracle 甲骨文公司,收费的大型数据库,(大型数据库管理系统)银行、金融、民航、电力……
2.MySQL 开源免费的数据库,是一个C/S关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品,目前依旧开源。MariaDB是MySQL的开源分支,是由原作者重新开源的产品。在互联网公司使用极为普遍。
3.Microsoft SQL Server 在Windows Server使用的数据库,常用于财务管理系统、餐饮管理系统等。
4.PostgreSQL 自称是世界上最先进的开源关系数据库。诞生于加州大学伯克利分校(前四个都使用SQL语句)
5.MongoDB 文档数据库、适合存储JSON数据。
6.Snowflake 数据库是一款基于云的高性能数据仓库,具有独特的架构和强大的功能。
7.Redias 开源的基于内存型、key-value结构的数据库,用于数据缓存,实现高并发。
8.IBM Db2 和IBM服务器绑定使用。
9.Elasticsearch 搜索引擎,适合全文搜索、日志分析等功能。
10.SQLiet 微型数据库,以文件的方式存储数据,支持SQL,适合于嵌入式设备,手机、App后台数据存储。
国产信创数据库:
·达梦数据库
·金仓数据库
·OceanBase
·openGauss
五、SQL是什么?
SQL: ( Structured Query Language),结构化查询语言,用于操作关系型数据的语言。
安装MySQL
> 企业一般使用MySQL二进制包安装MySQL8.0
> 另外还有yum/apt、源码、Shell、容器化安装(Doctor一键安装)
1.安装依赖环境
yum install -y libaio libaio-devel ncurses ncurses-devel openssl openssl-devel
2.下载二进制包
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
wget http://192.168.56.200/Software/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
3.设置安装路径与权限
# 解压
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
# 将mysql文件夹改名
cd /usr/local/
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql
cd
# 创建mysql用户
useradd mysql -M -s /sbin/nologin
# 创建数据库数据目录
mkdir /usr/local/mysql/data
# 更改mysql目录权限
chown mysql:mysql -R /usr/local/mysql
4.修改配置与初始化
# 修改MySQL配置文件
cat << EOF > /etc/my.cnf
[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
socket = /tmp/mysql.sock
character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci default-storage-engine=InnoDB default-authentication-plugin=mysql_native_password sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
# 执行初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 执行完后查看初始密码:
cat /usr/local/mysql/data/error.log
会出现
2025-08-01T01:59:17.918526Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2025-08-01T01:59:17.918708Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 1361
2025-08-01T01:59:17.955395Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-08-01T01:59:18.606916Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-08-01T01:59:19.405704Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: +nd+kHhZq1QZ
5.设置环境变量
# 修改系统环境变量
# 想要在任意目录执行mysql的命令需要修改/etc/profile
# PATH: 可执行命令的目录路径
vim /etc/profile
# 最后一行添加
export PATH=$PATH:/usr/local/mysql/bin
;wq或者:x保存退出
# 刷新
source /etc/profile
6.修改密码
# 使用初始的随机密码登录MySQL,然后修改密码
mysql -u root -p回车
在Enter password后直接输入初始密码,回车
在mysql>后输入alter user 'root'@'localhost' identified by 'root123';
出现以下情况说明密码已改为引号中的root123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.20 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
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>
最后输入\q或者exit;退出
7.设置开机启动
# 将启动脚本复制到/etc/init.d/目录,这是启动脚本的默认目录。
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 配置mysqld开机启动后,可以使用systemctl管理mysqld
systemctl enable mysqld
systemctl restart mysqld
systemctl status mysqld
8.设置远程登录(记得关闭防火墙沙盒)
# 服务端
# 本地登录MySQL
mysql -uroot -proot123
# 查询用户mysql> select host,user from mysql.user;
# 创建远程登录账号
mysql> create user 'root'@'%' identified with mysql_native_password by 'root123';
Query OK, 0 rows affected (0.01 sec)
# 设置开放权限
mysql> grant all on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)
# 刷新使权限生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
----------------------------------------------------
# 客户端-命令行
# mysql:官方的客户端
yum install mariadb 或者apt install mysql-client
mysql -uroot -proot123 -h192.168.221.20
# mycli:Python实现的mysql客户端,拥有关键字提示功能。
apt install mycli
mycli -uroot -proot123 -h"192.168.221.20"
# CentOS7上安装mycli
yum install python3-pip
pip3 install mycli==1.10
pip3 install pymysql==0.8
3146

被折叠的 条评论
为什么被折叠?



