数据库的基本知识(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 ## **#信号和信号量之间的区别** ![](https://file.jishuzhan.net/article/1776807614617751554/ae76ae7410dccae9aaf55530b042296b.webp) ### **##文件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)

相关推荐
一成码农6 分钟前
MySQL问题8
数据库·mysql
axban16 分钟前
QT M/V架构开发实战:M/V架构的初步认识
开发语言·数据库·qt
Dontla23 分钟前
Docker Compose healthcheck介绍(监控容器中服务的实际健康状态)数据库健康检查pg_isready
数据库·docker·容器
semantist@语校39 分钟前
第十九篇|东京世界日本语学校的结构数据建模:制度函数、能力矩阵与升学图谱
数据库·人工智能·线性代数·矩阵·prompt·github·数据集
数巨小码人40 分钟前
Oracle SQL调优技巧实战指南
数据库·sql·oracle
noravinsc42 分钟前
在银河麒麟v10上安装达梦8数据库
服务器·数据库·oracle
没有bug.的程序员1 小时前
Redis 内存优化与压缩:从原理到实战的完整指南
java·数据库·redis·内存优化·压缩内存
肃清11 小时前
《Redis核心机制解析》
数据库·redis·缓存
TG_yunshuguoji1 小时前
阿里云国际代理:如何利用RDS构建高可用、可扩展的数据库架构
服务器·数据库·阿里云·云计算·数据库架构
大可门耳1 小时前
Qt的数据库模块介绍,Qt访问SQLite详细示例
数据库·qt·sqlite