MySQL_概念/命令

目录

1 概念

2 安装

3 架构及原理

3.1 架构

3.1.1 参考列表

3.1.2 存储引擎层

3.1.3 Server层

3.2 日志原理

3.2.1 redo log

3.2.2 binlog

3.2.3 主从复制原理

4 语法要求

5 命令

5.1 访问

5.2  使用

5.2.1 查看MySQL版本

5.2.2 时区

5.3 MySQL JDBC


1 概念

       ① SQL:结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.

2 安装

(1) Linux

CSDN:CentOS7安装MySQL8(超级详细-无坑)https://blog.csdn.net/weixin_42326851/article/details/123984601

(2) Windows

CSDN:MySQL安装配置教程(超级详细)https://blog.csdn.net/fwdwqdwq/article/details/126113535

3 架构及原理

3.1 架构

3.1.1 参考列表

CSDN:SQL语句执行原理https://blog.csdn.net/xzx4959/article/details/106878300        MySQL 分为 Server 层和存储引擎层两部分.

3.1.2 存储引擎层

        负责数据的存储和提取.

3.1.3 Server层

        涵盖MySQL的大多数核心服务功能,以及所有的内置函数,所有跨存储引擎的功能(比如存储过程、触发器、视图等).

        (1)  连接器

        负责跟客户端建立连接、获取权限、维持和管理连接.

        访问 MySQL:mysql -h MySQL服务地址 -u 用户名 -p 密码

        退出访问:quit/exit.

        (2) 查询缓存:先查缓存后查数据库,新版已删除此模块.

        (3) 分析器:根据语法规则做语法分析,判断输入的这个SQL是否满足MySQL语法.

        (4) 优化器:在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联的时候,决定各个表的连接顺序.

        (5) 执行器:判断对该表有没有操作权限,有则执行语句.

3.2 日志原理

3.2.1 redo log

        存储引擎层日志.当有一条记录需要更新时,InnoDB 引擎会先把记录写到 redo log 里面,并更新内存.随后InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面.

3.2.2 binlog

(1) 概念

        binlog(binary log) 是 Server层二进制日志,以事件形式记录了除查询语句外所有的 DDL 和 DML 语句,还包含语句执行消耗的时间.binlog是事务安全型的.

(2) 开启 binlog

        ①修改/etc/my.cnf.

#设置binlog格式
binlog_format=row
# 监控指定的数据库,未完全解决
binlog-do-db=test
# 设置 server_id
server_id=1

        ②重启MySQL.

        ③查看binlog是否正确启动.

show variables like 'binlog_format%';

3.2.3 主从复制原理

        ①Master 主库修改数据,并将改变记录写到binlog中

        ②Slave 从库向主库发送dump协议,将主库的 binlog 日志拷贝到它的中继日志(relay log);

        ③最后从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库.

4 语法要求

        (1) 不区分大小写;

        (2) 每条语句以';'结尾.

        (3) 注释

                ①单行注释: # 或者 -- (注意空格)

                ②多行注释:/**/

5 命令

5.1 访问

        进程: mysql 

        启动:systemctl start mysqld

        停止:systemctl start mysqld

        查看 MySQL启动状态:systemctl status mysqld        

5.2  使用

5.2.1 查看MySQL版本

select version();

5.2.2 时区

(1) 查看时区

show variables like '%time_zone%';

结果:

        

        system_time_zone:表示系统使用的时区是 EDT即北美的东部夏令时(-4h).
        time_zone:表示 MySQL采用的是系统的时区

 (2) 修改时区

-- 时区修改成'东八区'
set time_zone = '+8:00';
flush privileges;

5.3 MySQL JDBC

(1) 访问Url

jdbc:mysql://ip:port/db?参数key=参数value&参数key=参数value

(2) 参数

-- 设置字符集
useUnicode=true&characterEncoding=UTF-8

-- 设置时区
serverTimezone=Asia/Shanghai

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值