mariadb

Select from multiple tables - One to Many relation

狂风中的少年 提交于 2020-03-01 01:57:50
问题 I have such tables: Table Product [ Id | Name ] Table Images [ Product_Id | Url | Ordernumber] Table Prices [ Product_Id | Combination | Currency | Price] Table Quantites [ Product_Id | Combination | Quantity] Table Product is in relation one-to-many with other tables. I need to query the table and result something like this (pseudo-array): [ ProductId: 1, Name: 'Sample product', Images: [ [url, 1], [url, 2] ], Prices: [ [aaa, USD, 50.00], [aaa, EUR, 50.00], [bbb, USD, 59.00], [bbb, EUR, 59

Linux saltstack的return和job_cache

大憨熊 提交于 2020-03-01 01:40:20
文章目录 1. SaltStack组件之return 1.1 return流程 2. job cache 2.1 job cache流程 2.2 job管理 1. SaltStack组件之return return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL、MongoDB、Redis、Memcache等,通过return我们可以对SaltStack的每次操作进行记录,对以后日志审计提供了数据来源。目前官方已经支持30种return数据存储与接口,我们可以很方便的配置与使用它。当然也支持自己定义的return,自定义的return需由python来编写。在选择和配置好要使用的return后,只需在salt命令后面指定return即可。 1.1 return流程 在所有minion上安装Mysql-python模块 [root@master ~]# salt '*' pkg.install MySQL-python 192.168.69.202: ---------- MySQL-python: ---------- new: 1.2.5-1.el7 old: [root@master ~]# salt '*' cmd.run 'rpm -qa|grep MySQL-python' 192.168

OpenStack--实践-11.手动部署Galera Cluster

拜拜、爱过 提交于 2020-02-29 22:35:22
.搭建galera集群 yum install epel-release yum install centos-release-openstack-stein 1.1 安装mariadb yum install mariadb mariadb-server python2-PyMySQL -y yum install mariadb-server-galera mariadb-galera-common galera xinetd rsync -y 1.2 初始化galera集群 3个节点选择其中任何一个节点 systemctl start mariadb.service mysql_secure_installation 编辑配置文件: vim /etc/my.cnf.d/openstack.cnf [mysqld] binlog_format = ROW bind-address = 192.168.10.51 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 [galera] bind-address = 192.168.10.51

一次Mariadb死锁排查过程回顾

我的梦境 提交于 2020-02-29 22:33:39
场景 在使用某个平台的时候,有些页面发现长时间,部分数据无法加载成功,开始排查问题。 确定是mariadb的问题的过程 访问了几个页面都是正常的,唯独某几个页面查询实时监控数据时无法加载出来, F12 查看接口发现有几个业务相似的接口长时间不返回数据。 既然整体功能是正常的,只有部分页面出现问题,而且都是实时数据无法显示,怀疑是同一个地方出现问题,于是把接口放在一起发现共同点。 都是 timeout 长时间无响应,而且不是前端资源加载的问题, F12 可以看到一个接口的请求过程,例如下图 查看代码逻辑 ,发现几个接口同时查询过一个表,登陆 mariadb ,发现 SELECT 长时间不返回。怀疑是锁表了。 以下所有示例使用 docker 启动 mysql 演示复现。 我先锁表 lock table test read; lock table test write; 发现是卡住了 mysql> select * from test; mysql> 2013 - Lost connection to MySQL server during query 查看长时间卡住的线程 查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程) show processlist; 但是此命令只能显示前100条数据,要想看全部的数据,请输入 show full

负载均衡的mariadb集群搭建

无人久伴 提交于 2020-02-29 22:16:14
集群介绍: Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎。 主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 真正的并行复制,行级 用户可以直接连接集群,使用感受上与MySQL完全一致 优势: 因为是多主,所以不存在Slave lag(延迟) 不存在丢失交易的情况 同时具有读和写的扩展能力 更小的客户端延迟 节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的 实现技术: Galera集群的复制功能基于Galera library实现,为了让MySQL与Galera library通讯,特别针对MySQL开发了wsrep API。 实践操作:负载均衡集群搭建 1 .下载mariadb集群 wget http://mirrors.opencas.cn/mariadb/mariadb-galera-10.0.17/bintar-linux-x86_64/mariadb-galera-10.0.17-linux-x86_64.tar.gz 2. 添加mariadb用户和组 groupadd mariadb useradd -g mariadb mariadb 3.

安装mysql 实操截图

依然范特西╮ 提交于 2020-02-29 21:14:29
前言: CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用MariaDB代替了,MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 安装步骤: 1、因为前言中提到centos7 默认的是 MariaDB,所以我们需要先卸载MariaDB a、先查询 mariadb 的版本 rpm -qa|grep mariadb b、由于和我们的mysql有冲突所以先进行卸载 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 2、执行安装命令 a、先进入到安装包所在目录,然后执行安装命令 rpm -ivh rpm -ivh MySQL-server-5.5.19-1.el6.x86_64.rpm 3、有的会提示缺少依赖,我们执行一个yum命令,中间需要输入Y来确定 yum install net-tools yum install perl 4、 重新执行安装命令 5、复制配置文件,并且改名为my.cnf为mysql配置文件 cp /usr/share/mysql/my

一次Mariadb死锁排查过程回顾

懵懂的女人 提交于 2020-02-29 20:03:45
场景 在使用某个平台的时候,有些页面发现长时间,部分数据无法加载成功,开始排查问题。 确定是mariadb的问题的过程 访问了几个页面都是正常的,唯独某几个页面查询实时监控数据时无法加载出来, F12 查看接口发现有几个业务相似的接口长时间不返回数据。 既然整体功能是正常的,只有部分页面出现问题,而且都是实时数据无法显示,怀疑是同一个地方出现问题,于是把接口放在一起发现共同点。 都是 timeout 长时间无响应,而且不是前端资源加载的问题, F12 可以看到一个接口的请求过程,例如下图 查看代码逻辑 ,发现几个接口同时查询过一个表,登陆 mariadb ,发现 SELECT 长时间不返回。怀疑是锁表了。 以下所有示例使用 docker 启动 mysql 演示复现。 我先锁表 lock table test read; lock table test write; 发现是卡住了 mysql> select * from test; mysql> 2013 - Lost connection to MySQL server during query 查看长时间卡住的线程 查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程) show processlist; 但是此命令只能显示前100条数据,要想看全部的数据,请输入 show full

mysql之事务

早过忘川 提交于 2020-02-29 19:23:52
mysql事务简单来说就是数据库的数据进行一系列的操作。例如insert,delete等等,而这些语句组成的对数据库的操作就是事务。 mysql事务有4大特性ACID:原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。 原子性(Atomicity):一个事务的操作要不全部完成,要不全部不完成。不会结束在某个环节。事务会在发生错误时回滚(rollback)到事务前状态。 一致性(Consistency):在事务开始前和结束后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合数据库表预设的规则。包含资料精确度,串联型等等。 隔离性(Isolation):数据库允许多个并发事务同时对数据进行读取和修改的能力。隔离性可以防止多个事务并发执行时由于交叉执行导致数据的不一致。 持久性(Durability):事务在提交之后,其修改的数据将永久保留在数据库中。 事务控制 使用事务功能也只能是支持事务的引擎才可以。 启动:START TRANSACTION 或者begin 提交:COMMIT 回滚:ROLLBACK mysql默认的是自动提交功能,也就是说在使用insert,delete,update的时候,执行一条,提交一条。 如果操作取消的话,我们还将一条条的删除。事务就是解决这一问题

Mariadb----字符类型 (五)

ぃ、小莉子 提交于 2020-02-29 01:04:41
MYSQL 数据类型----字符串类型 可以使用命令查看常见编码所占字节数: MariaDB [(none)]> SHOW CHARACTER SET; 查看默认字符: SHOW VARIABLES LIKE 'character%';,发现数据库编码均已改成utf8 1. utf8编码一个字符占3个字节; 2. gbk编码一个字符占2个字节; 3. latin1编码一个字符占1个字节。 更改某个字段的字符集: VARCHAR(20) character set utf8; 更改数据库的字符集: CREATE DATABASE 数据库名 character set utf8;; char(M) 与 varchar(M) 的理解可以参考int(M). varchar(n) 表示n个字符,无论汉字和英文,MySql都能存入 n 个字符,仅实际字节长度有所区别。 2 varchar (1)保存可变长字符串。 理解:比固定长度占用更少的存储空间,因为它只占用自己需要的空间。例外情况:使用ROW_FORMAT=FIXED创建的MyISAM表,它为每行使用固定长度的空间,可能会造成浪费。 (2)存储长度信息。 如果定义的列小于或等于255,则使用1个字节存储长度值,假设使用latin1字符集,如varchar(10)将占用11个字节的存储空间。反过来,varchar(1000)

第十三周作业

浪子不回头ぞ 提交于 2020-02-28 21:27:03
1、简述DNS服务器原理,并搭建主-辅服务器。 1.1 原理: 互联网中,家里的电脑第一次去访问 www.mageedu.com 的DNS解析过程: 1、在浏览器里面输入 www.mageedu.com ,这个请求就发给了本地DNS服务器(自己的电脑自动获取IP地址,DNS地址。DNS地址可以是由运营商自己搭建的DNS服务器,分配距离本机比较近的dns服务器地址。也可以自己指定,这个就称为本地DNS服务器)。 2、本地DNS服务器收到请求,发现不是自己管理的,就去问根DNS服务器。注意:每个服务器都是知道根服务器是谁。 3、根DNS服务器收到请求后,查看到本次请求的顶级域是自己管理com,然后告知其com服务器的IP地址,让其去询问com服务器。 4、本地DNS服务器收到请求后就去问com服务器。 5、com服务器收到请求后,查看到本次请求的二级域是自己管理的mageedu.com,然后告知其mageedu.com的IP地址,让其去询问。 6、本地DNS服务器收到请求后就去问mageedu.com服务器。 7、mageedu.com服务器收到请求后,查看自己的数据库里有 www.mageedu.com 对应的IP地址,然后就就查询结果告知本地DNS服务器。故而mageedu.com就是权威DNS服务器。 8、本地DNS服务器就将得到的结果缓存下来并告知用户,最后用户得到 www