MySQL or MariaDB 简介

  • DBMS:数据库管理系统
  • RDBMS:关系型数据库管理系统
   总之:他们都是一个数据管理程序;大多都是CS架构,都有专门的通信协议进行数据交换
  • 关系模型:
              表(行或者列):二维关系
  • 设计范式:
                第一范式、第二范式、第三范式
                关系运算:选择(选择行);投影(选择咧)
  • 数据库-----》表------》索引---》视图(虚表)
                 SQL(结构化查询语言):
                                DDL(数据定义语言)
                                DML(数据操作语言)
                                编程接口:支持判断,选择,循环。。。
                                                   可以定义存储过程;存储函数;触发器;事件调度器;过程式编程(选择,循环)
  • 数据的三层模型:
    • 物理层视图:RAID。。。
    • 逻辑层视图:设计表结构,数据的恢复,导入导出
    • 视图层:用户视图:增删改查数据
  • 关系型数据库解决方案:
    • 商业版:oracle,sybase,infomix(IBM),DB2
    • 开源版:MySQL,MariaDB,PostgreSQL,SQLite
  • 两条路线
    • mysql常见版本:5.1----->5.5------>5.6------->5.7
    • mariadb
            总结:mysql&mariadb选用的是插件式数据存储引擎
                       mariadb的单进程多线程
                                            连接线程    
                                            守护线程
  • mysql的配置文件内容简介:
    • 采用的是集中式的配置,能够为mysql的各种应用程序提供配置信息
    • [mysqld]:用于mysqld这个应用程序配置
    • [mysqld_safe]:线程安全的mysqld程序配置
    • [mysqld_multi]:多实例的mysql程序配置
    • [server]:服务端程序
    • [mysql]:客户端程序
    • [mysqldump]:mysql的备份还原程序
    • [client]:表示上述配置对客户端都有效
  • 参数定义
            parameter = value
            skip-name-resolve:跳过域名解析
  • 查找配置文件的路径:
    • /etc/my.cnf---->/etc/mysql/my.cnf----->$MYSQL_HOME/my.cnf---> --default-extra-file=/path/to/somedir/my.cnf-----> ~/.my.cnf        #按此顺序找。后找的会覆盖之前找到的

安装方法

  • os vendor:rpm安装
  • MySQL:
    • rpm
    • 展开可用
    • 源码编译安装
  • 安装之后的设定
    • 为所有root用户设定密码:
  1. mysql>set password
  2. mysql>update mysql.user set password=PASSWORD('password') where clausse;
  3. mysql>flush privileges;
  4. #mysqladmin ...
    • 删除所有的匿名用户
  1. mysql>drop user ''@'localhost';
  2. 同样也可以通过mysql_sequre_installation来实现用户加密和删除
    • 关闭主机名反解功能
          **元数据库:mysql
                                user,host
  • mysql的客户端程序:
    • mysql:交互式CLI工具
    • mysqldump:备份工具;基于mysql协议向mysqld发起查询请求,,并将查到的数据转换城INSERT等写操作语句保存到文本文件中
    • mysqladmin:这是mysql的客户端专用管理工具
    • mysqlimport :数据导入工具
  • mysql的非客户端类的管理工具
    • myisamchk:myisam引擎检查工具
    • myisampack:myisam打包工具(只读),节约空间
      • 客户端类的应用程序的可用选项:
        • -u;--user=
        • -h;--host=
        • -p;--password=
        • -P;--port=
        • --protocol={tcp|sock}
        • -S;--socket=
        • -D;--database=         #默认数据库
        • -C;--compress          #压缩
      • mysql -e "SQL"       #非交互格式执行sql
  • 获取程序的默认配置:
    • mysql --print-defaults         #不详细
    • mysqld --print-defaults       #详细
  • mysql的使用模式:
    • 交互式模式
      • 可运行的命令有两类:
        • 客户端命令:\h,help
        • 服务器端命令:需要语句结束符
    • 脚本模式
      • mysql -uUSERNAME -pPASSWORD < /path/from/somefile.sql
      • mysql>source /path/from/somefile.sql
  • mysql的服务器端(mysqld):工作特性有多重定义方式
    • 命令行选项
    • 配置文件参数
  1. [root@localhost ~]# mysql --verbos --help #查看所有帮助信息
  • 获取运行中的mysql进程使用各参数及其值:
  1. MariaDB [(none)]> show variables;
          注意:其中有些参数支持运行时修改,会立即生效;有些参数不支持,切只支持修改配置文件然后重启服务才能生效
                      有些参数的作用域是全局的,切不可修改;有些可以为每个用户提供单独的设置
  • 修改服务器参数的值:
  1. MariaDB [(none)]> help set; #查看set的帮助信息
  2. Name: 'SET'
    Description:
    Syntax:
    SET variable_assignment [, variable_assignment] ... variable_assignment:
    user_var_name = expr
    | [GLOBAL | SESSION] system_var_name = expr
    | [@@global. | @@session. | @@]system_var_name = expr
  • 全局变量的修改:
  1. MariaDB [(none)]> set global system_var_name = value;
  2. MariaDB [(none)]> set @@global.system_var_name=value;
  • 会话变量的修改:
  1. MariaDB [(none)]> set [session] system_var_name=value;
  2. MariaDB [(none)]> set @@[session.]system_var_name=value;
  • 状态变量(不能修改的):
  1. MariaDB [(none)]> set global status;
  2. MariaDB [(none)]> set [session] global status;



                

mysql之一的更多相关文章

  1. Hadoop 中利用 mapreduce 读写 mysql 数据

    Hadoop 中利用 mapreduce 读写 mysql 数据   有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...

  2. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

  3. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  4. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  5. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  8. Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制

    将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...

  9. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  10. 当忘记mysql数据库密码时如何进行修改

    因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...

随机推荐

  1. HeadFirst设计模式之观察者模式

    一.什么是观察者模式 观察者模式定义了一系列对象间一对多的关系,当主题对象的状态发生变化时,会通知所有观察者 二.自定义观察模式 1. 2. package headfirst.designpatte ...

  2. LINQ to PostgreSQL Tutorial

    原文 LINQ to PostgreSQL Tutorial This tutorial guides you through the process of creating a simple app ...

  3. border-radius的水平和竖直半径

    通常我们设置border-radius都只区分四个角的, 如border-radius: 1em 2em. 其实每个角的border-radius都由两部分组成, 水平半径和竖直半径. 要设置水平和竖 ...

  4. dup和dup2函数以及管道的实现

    疑问:管道应该不是这样实现的,因为这要求修改程序的代码 dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符.它们经常用来重定向进程的stdin.stdout和stderr. ...

  5. log file sync

    Recently, our application system has updated one app. I receive a email of complain the db server ch ...

  6. PHP array_chunk() 函数

    今天在CSDN上,看到了一个问题 一维数组 PHP code   array('0'=>'a',1=>'b',2=>'c',3=>'d',4=>'e',5=>'f' ...

  7. 对于eclipse新建maven工程需要注意的地方。

    新建项目的时候,如果想配置默认的maven的jre为1.6或者别的. http://hi.baidu.com/hi_hi/item/765ec8bbc49880d384dd79d1 1.cmd命令建立 ...

  8. javacript序列化表单数据

    在前端开发时,用到表单交互的比较多,在我们实现一些异步操作数据时,表单数据的序列化就显得尤为重要了.下面我们一起来看看如何进行序列化. 如,我们在进行提交表单时,地址栏里会显示这样的东东:name=z ...

  9. java 死锁及解决

    Java线程死锁如何避免这一悲剧  Java线程死锁需要如何解决,这个问题一直在我们不断的使用中需要只有不断的关键.不幸的是,使用上锁会带来其他问题.让我们来看一些常见问题以及相应的解决方法: Jav ...

  10. [原]Unity3D深入浅出 - 认识开发环境中的Layers面板

    Layers(分层)下拉列表:用来控制Scene视图中游戏对象的显示,在下拉菜单中为勾选状态的物体将显示在Scene视图中. Everything:显示所有的游戏对象 Nothing:不显示任何游戏对 ...