MySQL数据库基础

一、什么是数据库?数据库的功能是什么?

·存储数据的仓库 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值