Mysql体系结构和Mysql常用操作命令介绍

  • Mysql安装
  • CentOS7环境下安装
    获取mysql:
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    查看可安装的mysql版本:
    yum repolist enabled|grep mysql
    安装命令:
    yum install mysql-community-server
    systemctl enable mysqld
    systemctl start mysqld
    mysqladmin -u root password passwd
    mysql -uroot -p
    root账户登录Mysql

    • Mysql体系结构
    1. MySQL登录方式
      TCP/IP方式(最常用):

      mysql -uuser -ppasswd -h IP -P 3306

      Socket方式(本地):

      mysql -uuser -ppasswd -S /tmp/mysql.sock -P 3306
    2. mysqld程序运行原理
      2.1 mysqld程序结构

      2.2 sql语句执行过程
      连接层
      如上图在连接层中:
      1)、提供连接,TCP/IP建立连接或本地Socket连接;
      2)、身份验证;
      3)、接受用户SQL;
      SQL层

      1)、接受上层传递的SQL
      2)、语法验证,验证SQL语法是否满足
      3)、语义检查,判断SQL语句类型,DDL、DML、DQL等
      4)、权限检查
      5)、解析器,对语句执行前的预处理,生成解析树(就是执行计划)
      6)、优化器,根据解析器的多种执行计划,判断选择最优计划执行。会消耗系统资源
      7)、执行器,真正执行优化后的执行计划,就是执行SQL,返回产生结果,在磁盘上有改变
      8)、提供查询缓存,默认情况不开启,实际场景会使用redis、memcache等缓存替代查询缓存功能
      9)、日志记录,需要开启binlog功能
      存储层
      1)、根据SQL层的执行结果,磁盘读取数据
      2)、将16进制的磁盘数据,由SQL结构化成表
      3)、连接层专用线程返回给用户

    3.数据物理存储结构

    1)、库物理存储结构
    OS系统的文件系统目录存储。
    2)、表的物理存储结构,MySQL存储引擎
    InnoDB是mysql的一种存储引擎,除了innodb还有其它的,例如isam,myisam等。
    InnoDB是其中的一种存储引擎,它的特性是支持事务,并且采用多版本并发控制的方式来提高并发度。特色在于支持并发与表间引用。主要是事务表,当一个事务全部完成,才会执行update。mysql5.5后的版本,默认都支持InnoDB。

    InnoDB引擎的表:

    -rw-rw---- 1 mysql mysql       8895 4月  12 2018 default.frm
    -rw-rw---- 1 mysql mysql     114688 4月  12 2018 default.ibd

    default.frm:存储列相关信息
    default.ibd:数据行+索引

    Myisam引擎的表

    -rw-r----- 1 mysql mysql   10816 Apr 18 11:37 user.frm
    -rw-r----- 1 mysql mysql     396 Apr 18 12:20  user.MYD
    -rw-r----- 1 mysql mysql    4096 Apr 18 14:48 user.MYI

    user.frm:存储列相关信息
    user.MYD:数据行
    user.MYI:索引
    3)、表的段、区、页
    表:一个表就是一个段,可包含多个区;
    区:64个连续的页,默认1M
    页:最小的存储单元,默认16K

    • Mysql基础管理
    1. 用户管理
      查询数据库中所有用户:

      SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user;
      select host,user,password from mysql.user \G

      查询数据库中某个用户权限:

      show grants for ‘user‘@‘%‘;
    2. 权限
      grant赋予权限,常用权限有All、Select、update、insert等。
      grant all on ku.* to ‘user‘@localhost identified by ‘passwd‘;
      grant all on ku.* to ‘user1‘@‘%‘ identified by ‘passwd‘;
      grant select,update,insert on ku.* to ‘user2‘@‘%‘ identified by ‘passwd‘;

      其中“%”表示远程权限。
      revoke表示撤销权限,用法如下:

      revoke all on ku.* from ‘user‘@‘%‘;
      revoke delete,insert on ku.* from ‘user1‘@‘%‘;
    3. 命令常用参数
      mysql 常用参数:
      -u 用户
      -p 密码
      -h IP
      -P 端口
      -S socket文件
      -e 免交互执行命令
      < 导入SQL脚本
    4. 本地管理员root密码忘记处理
      # mysqld_safe --skip-grant-tables --skip-networking &
      mysql> flush privileges;
      mysql>  alter user [email protected]‘localhost‘ identified by ‘123456‘;
      # pkill mysqld
      # systemctl start  mysqld
    5. 库备份与恢复
      mysqldump用于数据库的备份操作命令。
      5.1 库操作:
      1).导出一个库结构:(-d:--no-data)
      mysqldump  -d dbname -u root -p > dbname.sql

      导出多个库结构:

      mysqldump  -d -B  db1 db2  -u root -p > dbname.sql

      2).导出一个库数据:

      mysqldump  -t  dbname -u root -p > dbname.sql

      导出多个库数据:

      mysqldump  -t -B  db1 db2  -u root -p > dbname.sql

      3).导出一个库结构和数据:

      mysqldump  dbname -u root -p > dbname.sql

      导出多个库结构和数据:

      mysqldump  -B  db1 db2  -u root -p > dbname.sql

    5.2 表操作:
    1).导出一张表数据:

    mysqldump  -t dbname  table1 -u root -p > dbname.sql

    导出多张表数据:

    mysqldump  -d  -B  dbname --tables  table1 table2 -u root -p > dbname.sql

    2).导出一张表数据和结构:

    mysqldump  dbname  table1  -u root -p > dbname.sql

    导出多张表数据和结构:

    mysqldump -B dbname --tables  table1 table2  -u root -p > dbname.sql

    5.3 存储过程和函数操作:
    1). 只导出存储过程和函数

    mysqldump -uroot -p -ntd -R --set-gtid-purged=OFF  dbname   >  dbname.sql

    --set-gtid-purged=OFF 这个选项控制是否要用gtids来恢复,默认开启的
    -ntd 不导出结构和数据
    -R 导出函数及存储过程。
    -n:--no-create-db
    -d:--no-data
    -n:--no-create-info
    -R:functions and procedures
    2). 导出所有,导出数据、数据结构、存储过程、函数

    mysqldump -uroot   -R  dbname  -p  >  dbname.sql

    存储过程:

    show procedure status;
    show create procedure pro_create_exo_order;

    5.4 导入恢复:

    mysql -u root -ppasswd ku < /root/ku.sql

    mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/opt/backup/ops_$(date +%F).sql.gz

    参数说明:
    -B:--databases,导出数据库列表,单库可省略
    -F:刷新日志
    -R:--routines导出存储过程及自定义函数
    -x:锁表
    -t:--no-create-info只导出数据,而不添加create table语句
    -n:--no-create-db只导出数据,而不添加create database语句
    -d:--no-data不导出任何数据,只导出库表结构
    --tables 表列表(单个表时可省略)
    ①同时导出结构以及数据时可同时省略-d和-t
    ②同时不导出结构和数据可使用-ntd
    ③只导出存储过程和函数可使用-R -ntd
    ④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
    ⑤只导出结构&函数&事件&触发器使用 -R -E -d
    --master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点pos信息

    原文地址:https://blog.51cto.com/10874766/2428606

    时间: 2024-11-05 12:31:48

    Mysql体系结构和Mysql常用操作命令介绍的相关文章

    MySQl学习-——Mysql体系结构与Mysql存储引擎

    Mysql体系结构与Mysql存储引擎 Mysql体系结构 mysql体系结构图: 1)        Connectors:指的是不同语言中与SQL的交互 max_connections 就是整个MySQL实例的最大连接数限制 max_user_connections 是单个用户的最大连接数,这里未指明是哪个用户,是任意一个用户. 2)        Management Serveices & Utilities:系统管理和控制工具 备份和恢复的安全性,复制,集群,管理,配置,迁移和元数据

    第03章 mysql 体系结构

    2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] MySQL体系结构 [4] MySQL体系结构详解 [5] MySQL体系结构 [6] mysql体系结构 [7] MySQL InnoDB体系结构 [8] MySQL体系结构以及各种文件类型学习汇总 [9] 基于mysql体系结构的深入解析

    mysql常用操作命令

    ###########mysql常用操作命令############# 1.安装mysqlyum install mysql mysql-server /etc/init.d/mysqld start    ##开启mysqld服务 2.设置及登录mysql_secure_installation        ##第一次安装mysql以后通过这条命令可以对mysql进行初始设置mysql -uroot -predhat            ##从本机登录mysql数据库(ps -aux|gr

    MySQL更改root密码、连接MySQL、MySQL常用命令介绍

    更改MySQL数据库root密码 1. 首次进入数据库是不用密码的,如下所示: [[email protected] ~]# /usr/local/mysql/bin/mysql -uroot //使用绝对路径进入mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.35 MySQL Community Server (GPL

    Linux系统中MySQL的常用操作命令

    服务: # chkconfig --list        列出所有系统服务# chkconfig --list | grep on     列出所有启动的系统服务 # chkconfig --list mysqld # whereis mysql  查看文件安装路径# which mysql     查询运行文件所在路径(文件夹地址)usr/bin/mysql 是指:mysql的运行路径var/lib/mysql 是指:mysql数据库文件的存放路径usr/lib/mysql 是指:mysql

    MySQL 服务常用操作命令

    1.MySQL 服务设置 在使用 mysql.server 命令之前需要将路径 /usr/local/mysql/support-files 添加到系统环境变量中. export PATH=$PATH:/usr/local/mysql/support-files 在使用 mysql 命令之前需要将路径 /usr/local/mysql/bin 添加到系统环境变量中. export PATH=$PATH:/usr/local/mysql/bin 具体设置请参照<添加系统环境变量>章节. 2.My

    Linux系统MySQL的常用操作命令

    安装好MySQL服务后添加环境变量: #vi /etc/profile export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin #source /etc/profile 1.数据库指令:(由于自己习惯用service,需安装指定工具net-tools) # service mysqld start    启动MySQL# service mysqld restart 重启MySQL# service mysqld

    mysql 常用操作命令

    Mysql 查询数据库 mysql> show databases; +------–+ | Database           | +------–+ | information_schema | | mysql              | | performance_schema | +------–+ 3 rows in set (0.00 sec) 删除数据库 mysql> show databases; +------–+ | Database           | +----

    MySQL Study之--MySQL体系结构深入解析

    MySQL Study之--MySQL体系结构深入解析 MySQL体系架构 由连接池组件.管理服务和工具组件.sql接口组件.查询分析器组件.优化器组件.缓冲组件.插件式存储引擎.物理文件组成.mysql是独有的插件式体系结构,各个存储引擎有自己的特点. MySQL内存结构: Mysql 进程结构 Mysql不像oracle那样是通过多进程来完成其功能的.默认情况下,InnoDB存储引擎的后台线程有7个: 4个IO thread, 1个master thread, 1个锁(lock)监控线程,