数据库的基本知识(mysql)

安装好mysql后有一个重要的配置文件/etc/my.cnf

复制代码
[root@master ~]# cat /etc/my.cnf
[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8mb4

#二进制日志
log_bin
server_id=1

#开启半同步
rpl_semi_sync_master_enabled=1  
rpl_semi_sync_master_timeout=1000 #1秒

#开启gtid
gtid-mode=ON
enforce-gtid-consistency=ON
log-slave-updates=on

[mysql]
auto-rehash
prompt=\u@\d \R:\m  mysql>

#解释三者之间的关系

mysqld_safe

mysqld

mysql:是客户端的连接程序

##实验:创建用户-使用-文件类型

##创建(数据库--》linux一切都是文件)文件夹

create database sc

root@(none) 17:31 mysql>create database sc;

Query OK, 1 row affected (0.00 sec)

#使用sc这个数据库

root@(none) 17:32 mysql>use sc

Database changed

#查看表的结构

root@sc 17:35 mysql>desc student_info;

+-------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id | int(11) | YES | | NULL | |

| name | varchar(20) | YES | | NULL | |

| sex | char(10) | YES | | NULL | |

+-------+-------------+------+-----+---------+-------+

3 rows in set (0.01 sec)

##查看sc库的文件内容

root@mysql2 sc# ls

db.opt student_info.frm student_info.ibd

db.opt 就是database option 数据库选项 --》作用:告诉我们这个库使用的字符串是什么

root@sc-mysql sc# cat db.opt

default-character-set=utf8 默认字符集

default-collation=utf8_general_ci 默认字符集对应的校对规则: 排序的时候使用的

student_info.frm --》表结构文件 frame 框架

student_info.ibd --》表的数据和索引 innodb data --》MySQL默认使用的存储引擎是innodb: 将MySQL内存里的数据存放到磁盘,将磁盘里的数据读取到内存。

mysql里的存储引擎:

innodb --》默认

myisam

索引:

index 也是数据,是描述数据的数据,告诉我们数据存放的哪里,一本书里的目录

帮助我们可以快速的查询到数据

提升查询的效率

##查看表的方式:

root@sc 18:36 mysql>desc student_info;

show create table student_info;

root@sc 17:36 mysql>show create table student_info;

存储引擎是捆绑到表上的

root@sc 18:38 mysql>create table weicanyu(id int,name varchar(10)) engine=myisam;

Query OK, 0 rows affected (0.00 sec)

root@mysql2 sc# ls

db.opt student_info.ibd weicanyu.MYD

student_info.frm weicanyu.frm weicanyu.MYI

weicanyu.frm --》表结构文件 frame 框架

weicanyu.MYD --》myisam存储引擎存放数据的 data

weicanyu.MYI --》myisam存储引擎存放索引 index

root@sc-mysql sc# yum install psmisc -y

===

socket 是进程是进程之间通信的方式 -->槽

1.文件socket

2.网络socket

进程和进程之间的通信方式:

管道:pipe

命名管道: named pipe

信号:signal

信号量Semaphor

共享内存Shared Memory

消息队列Message Queue

套接字 Socket

#信号和信号量之间的区别

##文件socket只有本机

##网络socket ,远程连接数据库

root@localhost

root@192.168.77.133

cali@'%'

% 是通配符,代表任意的字符串

root@(none) 16:36 mysql>create user 'cali'@'%' identified by '123456';

Query OK, 0 rows affected (0.01 sec)

root@(none) 16:37 mysql>grant all on *.* to 'cali'@'%';

grant 是mysql里授权的命令

all 代表授予所有的权限 select insert update delete等

on *.* 第1个* 代表库 第2个*代表表

to 'cali'@'%' 给具体的用户=

root@(none) 16:40 mysql>

root@sc-mysql \~# mysql -ucali -p'123456' -h 192.168.77.134

-h hosts

-p password

-u users

##查看数据库上有哪些人连上去

cali@(none) 20:03 mysql>show processlist;

+----+------+---------------------+-----------+---------+------+----------+------------------+

| Id | User | Host | db | Command | Time | State | Info |

+----+------+---------------------+-----------+---------+------+----------+------------------+

| 7 | root | localhost | sc | Sleep | 1250 | | NULL |

| 11 | cali | 192.168.0.110:36752 | NULL | Query | 0 | starting | show processlist |

| 12 | cali | 192.168.0.1:49306 | wangshuai | Sleep | 109 | | NULL |

| 13 | cali | 192.168.0.1:49308 | NULL | Sleep | 251 | | NULL |

+----+------+---------------------+-----------+---------+------+----------+------------------+

4 rows in set (0.00 sec)

===

如何知道自己的MySQL的版本

1.直接登陆,可以看到

2.使用命令

root@(none) 09:38 mysql>select version();

+-----------+

| version() |

+-----------+

| 5.7.37 |

+-----------+

1 row in set (0.04 sec)

思考: 为什么需要这些系统? (dba)

1.更好管理数据

2.分类

3.方便操作,不易出错

4.效率高

5.对人的经验要求可以降低

6.节约成本

##查看版本的方式--》

1.刚进入系统的时候,2.mysql>select version

cali@(none) 20:05 mysql>select version

-> ();

+------------+

| version

() |

+------------+

| 5.7.38 |

+------------+

1 row in set (0.00 sec)

相关推荐
Blossom i11 分钟前
大数据预处理与采集实验一:使用Python操作MySQL数据库
数据库·mysql
InfinitePlus27 分钟前
Docker MySQL搭建一主一从
mysql·docker
雾时之林1 小时前
Linux--软件管理、源码包安装
linux·服务器·数据库
老纪的技术唠嗑局3 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE3 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄3 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
少晓年4 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
SelectDB4 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB4 小时前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库
SelectDB5 小时前
阶跃星辰 Agent 可观测:Apache Doris / SelectDB 的技术能力与实践
数据库