mariadb

自动化运维工具Ansible之LNMP实践环境部署

落花浮王杯 提交于 2020-08-11 04:41:29
Ansible-实战指南-LNMP环境部署,并使用zabbix监控 主机规划 系统初始化:必要的系统初始化 基础组件包括:zabbix监控,mariadb(用于存放zabbix监控信息) 业务组件包括:MySQL、memcached、nginx、PHP、haproxy、keepalived 添加用户账号 说明: 1、 运维人员使用的登录账号; 2、 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放; 3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。 1 # 使用一个专门的用户,避免直接使用root用户 2 # 添加用户、指定家目录并指定用户密码 3 # sudo提权 4 # 让其它普通用户可以进入该目录查看信息 5 useradd -u 1050 -d /app yun && echo ' 123456 ' | /usr/bin/ passwd -- stdin yun 6 echo " yun ALL=(ALL) NOPASSWD: ALL " >> /etc/ sudoers 7 chmod 755 /app/ 备注:记得在管理机 172.16.1.180 上实现对其他机器的免密登录。 Ansible 配置清单Inventory 1 [yun@ansi

harbor基于keepalive高可用部署(一)

二次信任 提交于 2020-08-10 23:34:41
1.基础设置 1.1.拓扑图 2 Harbor 1.4.0版本开始提供了HA部署方式,和非HA的主要区别就是把有状态的服务分离出来,使用外部集群,而不是运行在本地的容器上。而无状态的服务则可以部署在多个节点上,通过配置上层Load Balancer构成HA。 1.2.主机角色 主机角色 IP地址 操作系统 备注 harbor01 10.7.132.243 linux7 安装docker-ce、redis、postgresql、mysql、keepalived harbor02 10.7.132.219 linux7 安装docker-ce、redis、postgresql、mysql、keepalived vip 10.7.132.253 harbor01是keepalived的master节点 harbor02是keepalived的slave节点 1.3.软件包 名称 版本 备注 linux centos7 操作系统 keepalived 1.3.5 用于vip docker-ce 18.09.6 运行镜像基础环境 docker-compose 1.21.2 用于编译yml mariadb 10.2.24 存储registry redis 3.2.1 存储消息缓存 postgresql 9.6 存储镜像扫描,功能未开启 harbor 1.5.4 基础包 1.4.hosts解析

Split fix value to countries based on daily revenue share

馋奶兔 提交于 2020-08-10 18:50:29
问题 DB-Fiddle CREATE TABLE sales ( id int auto_increment primary key, country VARCHAR(255), sales_date DATE, sales_volume INT, fix_costs INT ); INSERT INTO sales (country, sales_date, sales_volume, fix_costs ) VALUES ("DE", "2020-01-03", "500", "0"), ("NL", "2020-01-03", "320", "0"), ("FR", "2020-01-03", "350", "0"), ("None", "2020-01-30", "0", "2000"), ("DE", "2020-02-15", "700", "0"), ("NL", "2020-02-15", "420", "0"), ("FR", "2020-02-15", "180", "0"), ("None", "2020-02-29", "0", "5000"), ("DE",

Split fix value to countries based on daily revenue share

余生长醉 提交于 2020-08-10 18:50:12
问题 DB-Fiddle CREATE TABLE sales ( id int auto_increment primary key, country VARCHAR(255), sales_date DATE, sales_volume INT, fix_costs INT ); INSERT INTO sales (country, sales_date, sales_volume, fix_costs ) VALUES ("DE", "2020-01-03", "500", "0"), ("NL", "2020-01-03", "320", "0"), ("FR", "2020-01-03", "350", "0"), ("None", "2020-01-30", "0", "2000"), ("DE", "2020-02-15", "700", "0"), ("NL", "2020-02-15", "420", "0"), ("FR", "2020-02-15", "180", "0"), ("None", "2020-02-29", "0", "5000"), ("DE",

MySQL的存储引擎InnoDB选择了B+ 树

萝らか妹 提交于 2020-08-10 18:11:40
我们知道数据的存储和检索是两个很重要的功能,当我们的数据量大了,怎么能快速的检索数据呢,答案是使用索引,可索引具体的技术实现有很多,选择哪一种呢,我就以mysql为例记录下它为什么选择了B+树作为索引的实现方式。 1. 索引简介    索引是一种用于快速查询行的数据结构 ,就像一本书的目录就是一个索引,如果想在一本书中找到某个主题,一般会先找到对应页码。 MySQL 官方对索引的定义为:索引( Index )是帮助 MySQL 高效获取数据的数据结构。提取句子主干,就可以得到索引的本质: 索引是数据结构 。 2. 索引的几种数据结构类型 2.1 哈希索引(hash index) 哈希索引(hash index)基于哈希表(也可以叫散列表)实现 ,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。 下面举个小例子 它能快速的检索数据,不过在mysql数据库却有局限: a): 哈希索引数据并不是按照索引值顺序存储的,所以无法用来进行排序; b): 不能进行多列字段查询数据; c): 更不支持范围查询,比如查询年龄大于30,。 d): 有大量重复键值的情况下,哈希索引的效率也是极低的

CGB2004-京淘项目Day09

99封情书 提交于 2020-08-10 16:20:11
1.虚拟机配置 1.1 修改虚拟机网络空间地址 说明:将net网络配置 改为 192.168.126.0 修改dhcp设置 1.2 校验windows中Nat8 IP地址 在windows中 利用cmd命令 ipconfig 检查net8IP地址 是否为192.168.126.1 即可. 1.3 Linux操作系统重置网卡 说明:如果Linux操作系统开机之后, 通过IP addr 命令检查IP地址时,不能正常的展现IP地址,如图所示: 问题描述: CentOS7 版本中有2处网络配置 1.NetworkManager 2.network,有时在启动Linux系统时,可能导致2块网卡的配置产生冲突.导致无法获取IP地址. 通过重启网卡的方式实现IP的获取., 命令 1 :systemctl stop NetworkManager 命令 2 : service network restart 1.4 远程连接工具安装和使用 1.4.1 工具配置 1.4.2 通过用户登录服务器 2.Linux 环境配置 2.1 配置JDK 2.1.1 定位工作目录 说明:Linux中程序的安装目录 在 /usr/local/src 2.1.2 定位JDK文件目录 2.1.3 解压JDK 2.1.4 修改文件名称 2.1.5 修改环境变量配置文件 配置JDK 2.1.6 重启环境变量 2.2

在 Linux 上检查 MySQL/MariaDB 数据库正常运行时间的三种方法

不羁的心 提交于 2020-08-10 15:41:46
我们都知道在 Linux 中使用 uptime 命令的目的。它用于检查 Linux 系统的正常运行时间 以及系统上次启动以来运行的时间。 而 Linux 管理员的工作是保持系统正常运行。 如果要检查 Linux 上的其他服务(例如 Apache 、MySQL、MariaDB、sftp 等)运行了多长时间,该怎么做? 每个服务都有自己的命令来检查服务的正常运行时间。但是你也可以为此使用其他命令。 方法 1:如何使用 ps 命令在 Linux 上检查 MySQL/MariaDB 数据库的正常运行时间 ps 命令 的意思是进程状态process status。这是最基本的命令之一,它显示了系统正在运行的进程的详细信息。 为此,你首先需要使用 pidof 命令 查找 MySQL / MariaDB 的 PID。 # pidof mysqld | cut -d" " -f1 2412 获取 MySQL/MariaDB 的 PID 后,请在 ps 命令中使用 --etime 选项获得正常运行时间。 --etime :自进程启动以来经过的时间,形式为 [[DD-]hh:]mm:ss 。 # ps -p 2412 -o etime ELAPSED 2-08:49:30 或者,在 ps 命令中使用 --lstart 选项来获取指定 PID 的正常运行时间。 # ps -p 2412 -o

MariaDB10.3 增补AliSQL补丁---安全执行Online DDL

落花浮王杯 提交于 2020-08-10 09:05:40
Online DDL 从名字上看很容易误导新手,以为不论什么情况,修改表结构都不会锁表,理想很丰满,现实很骨感,注意这个坑! 有以下两种情况执行DDL操作会锁表的,Waiting for table metadata lock(元数据表锁) 1、 增加、删除字段或索引不会锁全表,删除主键、更改字段属性会锁全表 ,见下图所示: 2、 在添加字段 alter table 表时,对该表的增、删、改、查均不会锁表。而在这之前,该表有被访问时,需要等其执行完毕后,才可以执行 alter table , 例如在会话一,故意执行一条大结果的查询,然后在会话二执行增加字段 age ,此时还会出现表锁 ,如下图所示: 针对第二种情况,MariaDB10.3 增补AliSQL补丁-DDL FAST FAIL,让其DDL操作快速失败。 语法为: ALTER TABLE tbl_name [WAIT n|NOWAIT] ... CREATE ... INDEX ON tbl_name (index_col_name, ...) [WAIT n|NOWAIT] ... DROP INDEX ... [WAIT n|NOWAIT] DROP TABLE tbl_name [WAIT n|NOWAIT] ... LOCK TABLE ... [WAIT n|NOWAIT] OPTIMIZE TABLE tbl

MariaDB 10.3支持update多表ORDER BY and LIMIT

喜欢而已 提交于 2020-08-09 18:15:05
MariaDB 10.3支持update多表ORDER BY and LIMIT 1)update连表更新,limit语句 update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3; MySQL 8.0 直接报错 MariaDB 10.3 更新成功 --------------------------------------------------- 2)update连表更新,ORDER BY and LIMIT语句 update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3; MySQL 8.0 直接报错 MariaDB 10.3 更新成功 参考: https://jira.mariadb.org/browse/MDEV-13911 来源: oschina 链接: https://my.oschina.net/u/4342169/blog/4293987

MYSQL

ε祈祈猫儿з 提交于 2020-08-09 14:59:56
root@localhost ~]# mysql -uroot -p Enter password: MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | db2 | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.01 sec) MariaDB [(none)]> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db MariaDB [mysql]> select user from