MySQL/MariaDB随笔二】的更多相关文章

mariaDB的二进制安装:系统版本和MariaDB版本 [root@ ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@ ~]# ll |grep mar -rw-r--r--. root root Apr : mariadb--linux-x86_64.tar.gz 1检查环境: iptables selinux mysql-server mariadb-server 2.下载二进制包 3.安装过程 #.创建账号 #…
1.yum 安装后先跑一下系统自带的安全脚本,否则数据库很不安全,任何人都可以登录 [root@xixi ~]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secur…
数据库的结构(3种):层次,网状,关系型(用的最多): DBMS的三层模型: 视图层:面向最终用户: 逻辑层:面向程序员或DBA: 物理层:面向系统管理员: 关系型数据库管理系统——RDBMS: 主要的组成部分是表:表是由行(实例,实体,记录)和列(字段,域)组成: 关系型数据库管理系统的实现: 商业方案:Oracle,Sybase{为微软提供了思路出现SQL-server},Infomix{IBM收购},DB2{IBM} 开源方案:PostgreSQL,mysql,MariaDB SQL:St…
以下是本系列文章的大纲,此页博文完全原创,花费了作者本人的极大心血,如转载,请务必标明原文链接. 如果觉得文章不错,还请帮忙点下"推荐",各位的支持,能激发和鼓励我更大的写作热情.在此先行谢过! 为了让文章列表更紧凑,字体比较小.如果看着不太爽,请缩放页面150% 1.MySQL/MariaDB语法和基础篇 MySQL基本语法:和SQL Server语法的差异小归纳 数据类型详解和存储机制(精) 内置函数大全 变量 DML(1):数据插入 DML(2):数据更新.删除 开窗函数用法说明…
1.  启动mariadb systemctl start mariadb 2. 设置开机启动mariadb systemctl enable mariadb 一.修改用户密码,以root为例 1. 知道root密码,需要修改 方法a. 登入数据库来修改   # mysql -uroot -p /*输入密码进入*/   /*第一个方式:直接编辑数据库字段*/   MariaDB [(none)]> use mysql;   MariaDB [mysql]> UPDATE user SET pa…
MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品. 详细介绍请参考链接: http://mariadb.org/(官网) http://baike.baidu.com/link?url=dFJ-My-I52YFc1mx26K804LPwZrcEWCwB4IqfA4-soYx6295BZLIe7bE…
一般情况下不建议对生产环境进行升级,升级开始后会停止LNMP相关服务.本文仅适用于LNMP1.2及以后版本! 在LNMP目前LNMP v1.2中已经包含了Nginx.MySQL/MariaDB.PHP的升级脚本,可以帮助搭建对环境中的程序进行升级.(注意:以下操作均需要在lnmp压缩包解压后的目录里运行) 一.Nginx升级脚本执行:./upgrade.sh nginx 按提示输入版本号后回车(访问 http://nginx.org/en/download.html 可查找nginx的最新版本号…
  MySQL/MariaDB数据库的性能测试 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据库服务衡量指标 qps: query per second(每秒支持多少查询) tps: transaction per second(每秒支持多少个事务性能) 二.压力测试工具 mysqlslap: Mariadb自带的测试脚本 Sysbench:功能强大 https://github.com/akopytov/sysbench tpcc-mysql MySQL Benc…
  MySQL/MariaDB数据库的Galera高可用性集群实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Galera Cluster概述 1>.什么是Galera Cluster 集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分别是Percona Xtradb Cluster及MariaDB Cluster,Galera本身是具有多主特性的,即采用multi-master的…
  MySQL/MariaDB数据库的MHA实现高可用实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL高可用常见的解决方案 1>.Multi-Master Replication Manager for MySQL(简称MMM) Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的) 博主推荐阅读:…
MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 mysql-proxy:Oracle https://downloads.mysql.com/archives/proxy/ Atlas:Qihoo https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md dbproxy:美团 https://g…
  MySQL/MariaDB数据库的复制监控和维护 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.清理日志 1>.删除指定日志文件名称之前的日志(也可用基于时间) MariaDB [yinzhengjie]> SHOW BINARY LOGS; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin. | | | my…
  MySQL/MariaDB数据库的复制加密 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的安全问题 1>.基于SSL复制 在默认的主从复制过程或远程连接到MySQL/MariaDB所有的链接通信中的数据都是明文的,外网里访问数据或则复制,存在安全隐患.通过SSL/TLS加密的方式进行复制的方法,来进一步提高数据的安全性 2>. 配置实现步骤概述 主服务器开启SSL:[mysqld] 加一行ssl 主服务器配置证书和私钥:并且创建一个要求必须使用SSL连…
  MySQL/MariaDB数据库的复制过滤器 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.复制过滤器概述 1>.复制器过滤器功能 让从节点仅复制指定的数据库,或指定数据库的指定表. 2>.两种实现方式 方案一: 主服务器仅向二进制日志中记录与特定数据库相关的事件 此项和binlog_format相关,详情请参考官网说明:https://mariadb.com/kb/en/library/mysqld-options/#-binlog-ignore-db binl…
  MySQL/MariaDB数据库的半同步复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL半同步复制概述 1>.MySQL默认的异步复制 默认情况下,MySQL的复制功能是异步的,异步复制可以提供最佳的性能,主库把binlog日志发送给从库即结束,并不验证从库是否接收完毕. 这意味着当主服务器或从服务器端发生故障时,有可能从服务器没有接收到主服务器发送过来的binlog日志,这就会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失的风险. 2…
  MySQL/MariaDB数据库的主主复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主主复制概述 1>.什么是主主复制 所谓的主主复制,说白了就是两台节点互为主从关系. 2>.主主复制考虑要点 由于主主复制,2个MySQL实例均可以进行写操作,需要考虑客户端在Innodb存储引擎中对同一行的操作,以及自动增长id的关系. 3>.主主复制的缺点 由于2个节点都可以进行写操作,很容易产生数据不一致的问题,因此生产环境中咱们得慎用呀! 一般情况下主从复制就够…
  MySQL/MariaDB数据库的主从级联复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.主从复制类型概述 1>.主从复制 博主推荐阅读: https://www.cnblogs.com/yinzhengjie/p/11816066.html 2>.一主多从 其实就是重复主从复制的步骤即可.一个master节点多个slave节点,此时多个slave节点同时同步master节点. 3>.级联复制 在一主多从的架构上稍作改进,依旧是一个master节点,指定…
 MySQL/MariaDB数据库的主从复制  作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL复制概述 1>.传统扩展方式 垂直扩展(也叫向上扩展,Sacle Up): 在单节点通过提升服务器硬件性能以达到提升软件运行效率的问题,比如提升CPU,存储,内存,网络的性能. 在很多企业里面,MySQL数据库存放了一些重要的数据,当你的企业服务访问量越来越大,单个服务器性能以及很难达到要求了,一个单服务器的性能终究有限,通常在生产环境中一个数据库它的并发连接数能达到…
MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysqldump: 客户端命令,通过mysql协议连接至mysql服务器进行备份.因此备份过程中需要MySQL数据库实例必须处于可访问状态. 博主推荐阅读:https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html mydumper: 博主推荐阅读:https:…
MySQL/MariaDB数据库的冷备份和还原 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL/MariaDB数据库的备份和还原概述 1>.为什么要备份 为了预防灾难恢复:硬件故障.软件故障.自然灾害.黑客攻击.误操作测试等数据丢失场景. 2>.备份注意要点 能容忍最多丢失多少数据 恢复数据需要在多长时间内完成 需要恢复哪些数据 3>.还原要点 做还原测试,用于测试备份的可用性 还原演练(备份和备份成功是两码事!一定要进行还原演练!!!最好有相关的操作…
MySQL/MariaDB数据库的各种日志管理 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务日志 (transaction log) 1>.Innodb事务日志相关配置 MariaDB [yinzhengjie]> SHOW VARIABLES LIKE '%innodb_log%'; +-------------------------------+------------+ | Variable_name | Value | +---------------…
  MySQL/MariaDB数据库的事务和隔离级别 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务概述 1>.事务Transactions 一组原子性的SQL语句,或一个独立工作单元. 2>.事务日志 由于直接对源表进行修改当服务器突然掉电可能会导致源表数据被损坏,因此可以将修改先记录事务信息,后根据事务日志信息再对源表实现undo,redo等故障恢复功能 redo: 将事务日志中已经commit的事务进行复现操作,即对源表进行修改. undo: 将事务日志中未…
MySQL/MariaDB数据库的并发控制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.并发控制概述 1>.什么是并发控制 MySQL是一个服务器级别的数据库,它通常放在网络上有很多用户并发访问的,因此并发控制很关键. 2>.锁粒度 表级锁(MyISAM和Innodb都支持) 行级锁(仅Innodb支持,MyISAM不支持) 3>.锁 读锁: 共享锁,只读不可写(包括当前事务) ,多个读互不阻塞 写锁: 独占锁,排它锁,写锁会阻塞其它事务(不包括当前事务)的读…
MySQL/MariaDB数据库的索引工作原理和优化 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际工作中索引这个技术是影响服务器性能一个非常重要的指标,因此我们得花时间去了解一下索引的相关特性.索引是一把双刃剑用得好可以快速查询数据,用得不好数据库查询速度不仅慢还降低服务器性能,浪费磁盘空间. 一.索引概述 1>.什么是索引 索引是特殊数据结构,定义在查找时作为查找条件的字段,在MySQL又称为键key,索引通过存储引擎实现. 索引可以看作是一本字典的目录,为了快速检…
MySQL/MariaDB数据库的查询缓存优化 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL架构 Connectors(MySQL对外提供的交互接口,API): Connectors组件,是MySQL向外提供的交互组件,如Python,Golang,Java,C++,Php等语言可以通过该组件来操作SQL语句,实现与SQL的交互. Connection Pool(连接池组件): 负责监听对客户端向MySQL Server端的各种请求,接收请求,转发请求到目标…
MySQL/MariaDB数据库的服务器配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL中的系统数据库 1>.mysql数据库 是mysql的核心数据库,类似于Sql Server中的master库,主要负责存储数据库的用户.权限设置.关键字等mysql自己需要使用的控制和管理信息 2>.performance_schema数据库 MySQL .5开始新增的数据库,主要用于收集数据库服务器性能参数,库里表的存储引擎均为PERFORMANCE_SCHEMA,…
MySQL/MariaDB数据库的存储引擎 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.MySQL体系结构 连接管理模块: 负责接收远程用户的连接. 线程管理模块: 维护一个线程池,通过连接管理模块接入的连接会在线程池中分配一个空闲线程去响应,当用户端口连接后线程资源会被回收(并不会被销毁),即重新放回线程池. 用户管理: 负责验证用户是否合法. 命名分发器: 负责分发命令到相应模块并记录日志信息. 查询缓存模块: 负责缓存曾经执行SQL的返回结果.当下次查询到与之…
MySQL/MariaDB数据库的用户和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.元数据数据库(mysql) 系统授权表(均在mysql数据库中): db host user: 存放用户的表. columns_priv tables_priv procs_priv proxies_priv MariaDB [yinzhengjie]> SELECT user,host FROM mysql.user; #查看MySQL实例安全初始化后的默认用户 +-----…
MySQL/MariaDB数据库的触发器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.触发器概述 1>.什么是触发器 触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发.激活从而实现执行.= 2>.创建触发器帮助信息 MariaDB [yinzhengjie]> HELP CREATE TRIGGER Name: 'CREATE TRIGGER' Description: Syntax: CREATE [DEFINER = { user | CURR…
MySQL/MariaDB数据库的存储过程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程概述 1>.存储过程优势 存储过程把经常使用的SQL语句或业务逻辑封装起来,预编译保存在数据库中,当需要时从数据库中直接调用,省去了编译的过程 提高了运行速度 同时降低网络数据传输量 2>.存储过程与自定义函数的区别 存储过程实现的过程要复杂一些,而函数的针对性较强 存储过程可以有多个返回值,而自定义函数只有一个返回值 存储过程一般独立的来执行,而函数往往是作为其他SQL语…