数据库基础
目录
一、卸载MySQL
1.1.停止MySQL服务
bash
systemctl stop mysql


1.2.查看MySQL安装包
bash
dpkg -l | grep mysql

1.3.卸载MySQL
bash
apt remove mysql-server mysql-client mysql-common -y // 删除MySQL
rm -rf /var/lib/mysql // 删除残留目录
rm -rf /etc/mysql // 删除残留目录
apt autoremove -y // 清理无用依赖



检测是否删除干净

二、安装MySQL
2.1.安装MySQL
云服务器开放3306端口
bash
apt install mysql-server -y

2.2.安全初始化
bash
// 启动设置开机自启
systemctl start mysql
systemctl enable mysql
// 安全初始化
mysql_secure_installation
2.3.登录MySQL
bash
mysql -uroot -p
补充:开启远程访问,并创建远程root账号
bash
// 修改绑定IP, 开启远程访问
vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1 → bind-address = 0.0.0.0
// 重启数据库
systemctl restart mysql

bash
// 输入安装时设置的密码
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
// 验证版本
mysql -V
-h:指明登录部署了的MySQL服务主机
-P:指明要访问的端口号(可在配置文件修改)
-u:指明登录的用户
-p:指明需要输入密码

三、数据库的认识
3.1.数据库的概念
文件提供了数据存储功能,但是没有提供很好的数据内容管理能力,所以引入了数据库
数据库:一套数据存储方案,在磁盘或内存中存储具有特定组织结构的数据
数据库本质:对数据内容存储的一套解决方案,提供字段与要求,直接返回结果
MySQL:一套提供数据存取服务的网络程序
MySQL本质:基于CS模式的一种网络服务
mysql(C):数据库服务的客户端
mysqld(S):数据库服务的服务端(d:守护进程)



3.2.主流的数据库
SQL Server:微软的产品,中大型项目
Oracle:甲骨文的产品,大型项目,复杂业务,并发性一般
MySQL:甲骨文的产品,不适合做复杂业务,并发性好
SQLite:轻型数据库,嵌入式设备
H2:用Java开发的嵌入式数据库
3.3.使用案例
建立数据库的本质就是在Linux下新建一个目录
在数据库内建表本质就是在Linux下创建对应的文件
创建一个数据库
sql
create database helloworld; // 创建数据库


选择一个数据库
sql
use helloworld; // 使用数据库
创建数据库表结构
sql
// 创建数据库表
create table student(
name varchar(32),
age int,
gender varchar(2)
);


向表中插入数据
sql
insert into student (name, age, gender) values ('张三', 20, '男');

从表中选择数据
sql
select * from student;

3.4.服务器、数据库、表
安装数据库指的是在主机上安装了一个数据库管理系统程序
该管理程序可以管理多个数据库,开发人员会针对每个应用创建一个数据库
为保存应用中实体的数据,一般会在数据库中创建多个表,来保存程序数据

3.5.数据逻辑存储

3.6.MySQL架构
MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行
一层:安全与连接管理
二层:词法语法分析,SQL语句优化
三层:提供多种数据存储方案,可插拔存储引擎
底层:存入文件系统
3.7.SQL分类
DDL(Data Definition Language):数据定义语言
用来维护存储数据的结构,如:create,drop,alter
DML(Data Manipulation Language):数据操纵语言
用来对数据进行操作,如:insert,delete,update
DCL(Data Control Language):数据控制语言
用来负责权限管理和事务,如:grant,revoke,commit
3.8.存储引擎
数据库管理系统如何存储数据,如何为存储数据建立索引,如何更新、查询数据等技术的实现方法
常用:MyISAM、InnoDB

