数据库的基本知识(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)

相关推荐
gavin_gxh17 分钟前
ORACLE 删除archivelog日志
数据库·oracle
一叶飘零_sweeeet20 分钟前
MongoDB 基础与应用
数据库·mongodb
猿小喵35 分钟前
DBA之路,始于足下
数据库·dba
tyler_download44 分钟前
golang 实现比特币内核:实现基于椭圆曲线的数字签名和验证
开发语言·数据库·golang
weixin_449310841 小时前
高效集成:聚水潭采购数据同步到MySQL
android·数据库·mysql
CodingBrother1 小时前
MySQL 和 PostgreSQL 的使用案例
mysql·adb·postgresql
Cachel wood2 小时前
Github配置ssh key原理及操作步骤
运维·开发语言·数据库·windows·postgresql·ssh·github
standxy2 小时前
如何将钉钉新收款单数据高效集成到MySQL
数据库·mysql·钉钉
Narutolxy3 小时前
MySQL 权限困境:从权限丢失到权限重生的完整解决方案20241108
数据库·mysql
Venchill3 小时前
安装和卸载Mysql(压缩版)
数据库·mysql