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

相关推荐
JavaGuide29 分钟前
公司来的新人用字符串存储日期,被组长怒怼了...
后端·mysql
怒放吧德德3 小时前
MySQL篇:MySQL主从集群同步延迟问题
后端·mysql·面试
数据智能老司机4 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
Eip不易也不e5 小时前
教程之同时安装两个版本的 mysql
mysql
数据智能老司机5 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
松果猿5 小时前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
Kagol5 小时前
macOS 和 Windows 操作系统下如何安装和启动 MySQL / Redis 数据库
redis·后端·mysql
无名之逆5 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s9123601015 小时前
rust 同时处理多个异步任务
java·数据库·rust
数据智能老司机5 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构