mysql数据库
7*24 工作者
走自己的路,让别人说去吧
展开
-
ERROR 2026 (HY000): SSL connection error: protocol version mismatch
ERROR 2026 (HY000): SSL connection error: protocol version mismatch翻译 2024-06-01 02:41:08 · 774 阅读 · 0 评论 -
MySQL占用内存的计算方法
结合官方文档 https://dev.mysql.com/doc/refman/5.7/en/memory-use.html 和 percona文档 https://www.percona.com/blog/2018/06/28/what-to-do-when-mysql-runs-out-of-memory-troubleshooting-guide/得出以下MySQL占用内存的计算方法--查看每个线程占用多少内存,然后乘以正在运行的线程(也就是排查sleep的)。SELECT ( ( @@read原创 2021-12-10 10:25:19 · 1538 阅读 · 0 评论 -
MySQL delete删除数据后,释放磁盘空间
当 MySQL 数据库服务删除部分数据后;有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放。以下是对这种情况的简单说明:一、删除表|清空数据表当执行删除数据表或者清空数据表的全部数据操作时,都会释放掉相应的磁盘存储空间。drop table table_name;truncate table table_name;在MyISAM和InnoDB(innodb_file_per_table)存储引擎中,数据信息存在在单个文件中。删除表操作和清空数据表操作都会释放空间。二、删原创 2021-12-10 10:04:50 · 17540 阅读 · 0 评论 -
MySQL优化工具AWR
俗话说工欲善其事,必先利其器,定期对 MYSQL数据库 进行一个体检,是保证数据库安全运行的重要手段,因为,好的工具是使你的工作效率倍增!今天和大家分享几个 MySQL 优化的工具,你可以使用它们对你的 MYSQL 进行一个体检,生成awr报告,让你从整体上把握你的数据库的性能情况。一、mysqltuner.pl是 MySQL 一个常用的数据库性能诊断工具,主要检查参数设置的合理性包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问题,给出改进的建议。是 MYSQL 优化的好帮手。MySQ翻译 2021-08-20 14:11:34 · 650 阅读 · 0 评论 -
书写高质量SQL的30条建议
1、查询SQL尽量不要使用select *,而是select具体字段反例子select * from employee ;正例子select id,name from employee ;理由:只取需要的字段,节省资源、减少网络开销。select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。2、如果知道查询结果只有一条或者只要最大/最小一条记录,建议用limit 1假设现在有employee员工表,要找出一个名字叫 jay 的人.CREATE TABLE翻译 2020-10-22 09:52:32 · 352 阅读 · 0 评论 -
aiomysql异步操作mysql
一、概述aiomysql是一个从asyncio(PEP-3156/tulip)框架访问MySQL数据库的库。它依赖并重用PyMySQL的大部分部分。aiomysql试图成为一个很棒的aiopg库,并保留相同的api、外观和感觉。在内部aimysql是PyMySQL的副本,底层io调用切换到async,基本上是等待并在适当的位置添加async def coroutine。从aiopg移植的sqlalchemy支持。二、安装模块pip3 install aiomysql三、简单示例#!/usr翻译 2020-05-27 13:43:34 · 4452 阅读 · 0 评论 -
mysqldump: Couldn't execute 'SELECT COLUMN_NAME
使用mysqldump备份数据库提示mysqldump: Couldn’t execute ‘SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, ‘$.“number-of-buckets-specified”’) FROM information_schema.COLUMN_STAT...原创 2020-04-30 15:40:32 · 5558 阅读 · 0 评论 -
MySQL 查询结果单位换算方法
一、round 函数说明: round(x,d):用于数据的四舍五入,round(x) ,其实就是round(x,0),也就是默认d为0;这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;示例:SELECT ROUND(200.1467,2),ROUND(100,2),ROUND(0.5,2),ROUND(111.3,-1);结果:200...原创 2020-02-19 13:59:52 · 3761 阅读 · 1 评论 -
查看阿里云RDS binglog的方法
从阿里云的RDS下载binlog后,直接使用 mysqlbinlog 二进制文件名 工具看到的binlog是加密的,因此需要按时间点从后台备份的binlog日志从阿里云导出来,然后用mysqlbinlog查看日志内容:mysqlbinlog -vv --base64-output=decode-rows [-d 库名 --start-position= --stop-position=] mys...原创 2019-12-12 16:01:34 · 961 阅读 · 0 评论 -
python调用阿里api定时备份阿里云RDS数据库
需求: 全量备份数据库,但是数据库比较大,如果采用mysqldump在其他机器备份会大量占用mysql,所以研究了阿里api文档写了python脚本放在linux下用定时任务自动备份。一、安装阿里云rds的SDK模块pip install aliyun-python-sdk-rds参考地址:https://help.aliyun.com/document_detail/100865.ht...原创 2019-10-20 10:42:00 · 1250 阅读 · 0 评论 -
启动mysql时占用物理内存和虚拟内存过高问题
MySQL 5.5版本以后新增一个存储引擎:命名performance_schema ,主要用于收集数据库服务器性能参数。performance_schema提供以下功能: 1.提供进程等待的详细信息,包括锁、互斥变量、文件信息; 2.保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断; 3.对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期,原创 2017-12-22 14:58:13 · 3855 阅读 · 0 评论 -
MySQL多实例配置
一、简介 多实例就是一台服务器上开启多个不同的服务端口(默认3306),运行多个mysql的服务进程,这此服务进程通过不同的socket监听不同的服务端口来提供各在的服务,所有实例之间共同使用一套MySQL的安装程序,但各自使用不同的配置文件、启动程序、数据文件,在逻辑上是相对独立的。 多实例主要作用是:充分利用现有的服务器硬件资源,为不同的服务提供数据服务,但是如果某个实例并发比较原创 2018-02-06 10:59:08 · 594 阅读 · 0 评论 -
pymysql操作mysql数据库
在python2.7种主要用的是MySQLdb模块,在python3.X版本中用的是pymysql模块,两者的用法是完全一样的,就是名字不同而已。安装模块的方法主要是用pip命令,下面我用pymysql模块做分析。一、数据库信息#!/usr/bin/env python#-*- coding:utf-8 -*-...原创 2017-12-12 10:26:35 · 935 阅读 · 0 评论 -
MySQL5.7 SSL配置和启用
一、安装时启动SSL[root@linux-node local]# /usr/local/mysql5.7/bin/mysqld --initialize --basedir=/usr/local/mysql5.7 --datadir=/usr/local/mysql5.7/data/ --user=mysql[root@linux-node local]# /usr/local/my原创 2018-01-16 17:45:42 · 10269 阅读 · 6 评论 -
MySQL升级
MySQL5.7新增了不少新功能,比如:Online DDL、多源复制、增强半同步、表空间传输、sys 库、Group Replication等。一、MySQL升级的两种方式1、in-place upgrade: 适合小版本的升级。 即 关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade. 特点:不翻译 2018-01-16 15:14:01 · 775 阅读 · 0 评论 -
数据库cpu负载高
cpu使用率达到100%的处理过程一、查进程,主要是查找被锁表的那个进程的IDshow processlist 从上述表中,可以很清楚的看到慢查询语句(只是展示了部分数据),一般mysql的增删改操作都会锁表二、将这些进程ID,kill掉即可 首先,将所有的进程号取出。如果进程比较多,可以使用for循环来做:mysql -uroot -p密码 -e "show processlist"| awk原创 2017-05-26 11:04:19 · 4522 阅读 · 0 评论 -
MySQL命令操作
一、增insert into 表名 (列名,列名...) values (值,值,值...)insert into 表名 (列名,列名...) values (值,值,值...),(值,值,值...)insert into 表名 (列名,列名...) select (列名,列名...) from 表名二、删delete from 表名delete from 表名 where id=1 and原创 2017-08-07 15:45:34 · 517 阅读 · 0 评论 -
error while loading shared libraries: libnuma.so.1: cannot open shared object file
在初始化mysql5.7的时候,报以下错误error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory备注: 初始化参数为/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/loca原创 2017-12-19 16:36:50 · 34512 阅读 · 16 评论 -
Percona XtraBackup 备份和还原数据库
一、Percona XtraBackup 备份原理1、完全备份 2、增量备份 3、数据还原备份 二、Percona XtraBackup 剖析1、全备 2、增量备份 三、Percona Xtrabackup的基本操作1、Percona Xtrabackup的安装 (1)下载Xtracbackup软件(我的这个是el7平台的)https://pan.baidu.com/s/1i5O原创 2017-10-17 15:00:22 · 731 阅读 · 0 评论 -
Django操作数据库 - ORM
Models一、当我们的程序涉及到数据库相关操作时,我们一般都会这么做 (1)创建数据库,设计表结构和字段 (2)使用 MySQLdb 来连接数据库,并编写数据访问层代码 (3)业务逻辑层去调用数据访问层执行数据库操作import MySQLdbdef GetList(sql): db = MySQLdb.connect(user='root', db='test', ...翻译 2017-09-13 10:22:34 · 1017 阅读 · 0 评论 -
监控mysql每个ip的连接数
统计数据库的每个IP连接数(进入到数据库里面,执行以下sql):select substring_index(host,':',1) as ip , count(*) from information_schema.processlist group by ip;查看当前登录mysql 的主机地址:$ mysql -u用户名 -p密码 -e "show processlis...原创 2018-02-23 14:10:55 · 2515 阅读 · 1 评论 -
mysql的索引
一、建立索引的优缺点1、好处:①加快了查询速度2、坏处:①降低了增删改的速度②增大了表的文件大小(索引文件甚至可能比数据文件还大)二、索引的使用原则①不要过度索引②索引条件列(where后面最频繁的条件比较适宜索引)③索引散列值,过于集中的值不要索引三、索引的类型普通索引(index):加快查询速度唯一索引(unique):行上的值不能重复主键索引(primary key):不能重复原创 2017-06-06 09:42:31 · 693 阅读 · 0 评论 -
SQLalchemy连接数据库
1、连接命令from sqlalchemy import create_enginefrom sqlite3 import dbapi2 as sqliteengine = create_engine('mysql+mysqldb://username:password@hostname:3306/database?charset=utf8')engine = create_engine(...原创 2019-08-07 11:27:42 · 954 阅读 · 0 评论 -
postgreSQL 主从安装部署
官网:https://www.postgresql.org/中文社区:http://www.postgres.cn/index.php/v2/home中文文档:https://www.yiibai.com/manual/postgresql/源码下载地址:https://www.postgresql.org/ftp/source/一、环境准备准备2台主机,添加postgres用户并设置用...原创 2019-07-19 14:04:07 · 876 阅读 · 0 评论 -
19条提高的MySQL技巧
1、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1、2、3、4、5)我们要重点关注的数据:type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。key_len列,索引长度。rows列,扫描行数。该值是个预估值。e...翻译 2019-05-14 14:31:23 · 314 阅读 · 0 评论 -
mysql5.7 sql_mode模式BUG
在mysql5.7中,执行 含有 GROUP BY 的SQL 语句查询时,报 sql_mode=only_full_group_by 错误解决方法:1、查看 sql_mode 默认模式select @@sql_mode;结果:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR...翻译 2019-02-13 12:38:58 · 643 阅读 · 0 评论 -
linux 下安装并运行kettle 程序
一、创建用户groupadd kettleuseradd -r -g kettle kettle 二、下载并解压安装包unzip pdi-ce-7.1.0.0-12.zipchown kettle.kettle data-integration -Rcd data-integrationchmod 755 *.sh三、安装jdkmkdir /usr/javatar -z...原创 2018-11-07 15:06:15 · 14415 阅读 · 2 评论 -
MySQL十个常见错误
问题一:Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)问题还原mysql> show variables like '%max_connection%';| Variable_name | Value |max_connections | 151 | mysql> set global max_connections=1;...翻译 2018-11-01 09:56:26 · 923 阅读 · 0 评论 -
MySQL多实例配置文件在一个文件内的启动和关闭问题
有一次在帮朋友解决问题的时候,他们服务器的MySQL是多实例的,在上面做了主从配置,之前我用的多实例是多个配置文件,本文主要介绍多实例在一个配置文件中的启动和关闭问题配置文件内容[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminu...原创 2018-05-12 16:34:47 · 710 阅读 · 0 评论 -
mysqldump: Got error: 1016: "Can't open file: '*.frm' (errno: 24)"
问题描述 在做MySQL备份时,出现 MySQL 打开文件错误: mysqldump: Got error: 1016: “Can’t open file: ‘./db_lto/c_e00008_001_bb_rel_forum_userstonotify.frm’ (errno: 24)” when using LOCK TABLES 分析问题 ...原创 2018-04-25 11:01:57 · 1909 阅读 · 0 评论 -
MySQL的外键
外键(foreign key)作用: 用于约束处于关系内的实体 增加从表记录时,是否有与之对应的主表记录,如果有,则可以添加,没有则会 报错。 创建外键的语法:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(从表字段) references 主表(主表字段)删除外键的语法:alter table 表名 drop fo原创 2017-08-04 14:44:09 · 414 阅读 · 0 评论 -
MySQL数据库主从同步
原理图 一、环境linux-node1.example.com: master 192.168.1.14linux-node2.example.com: slave 192.168.1.15二、 slave导入master的全备份数据1、备份master的数据,并复制给slave机[root@linux-node1 ~]# mysqldump --all-databases -uroo原创 2017-10-19 10:12:38 · 409 阅读 · 0 评论 -
mysql的触发器
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。一、触发器的作用监视某种情况并触发某种操作备注:我在网上也看了很多概念性的东西,但是感觉比较啰嗦,我感觉运维人员只要能大体上把这个用简短的话描述出来就可以了。下面是我在网上找的触发器的作用1.安全性。可以基于数据库的值使用户具有操作数据库的某种权利。 # 可以基于时间原创 2017-06-09 12:01:57 · 573 阅读 · 0 评论 -
mysql的5中查询子句之三having条件查询
where条件查询和having条件查询的区别 where条件查询的作用域是针对 表 进行操作,而having条件查询则是将 查询结果 进行操作 这是两者对显著的区别 就拿我在【mysql的5中查询子句之二group by分组查询】中的第9个例子再进一步扩展1、查询出每个功能id比项目id低1000的栏目mysql> select functionid,itemid,function,item原创 2017-06-16 11:12:51 · 4424 阅读 · 0 评论 -
mysql的5中查询子句之二group by分组查询
一、group by查询简介作用:把行 按 字段 分组语法:group by 列1,列2....列N适用场合:常用于统计场合,一般和聚合函数连用。聚合函数(或者叫统计函数):max(最大值),min(最小值),avg(平均值),sum(求和),count(计数)二、举例我这边做实验的数据还是zabbix的数据,这个大家随时都可以在官网上下载1、查出功能id最大的值mysql> select m原创 2017-06-15 10:52:37 · 1424 阅读 · 0 评论 -
mysql的5中查询子句之一where条件查询
mysql的5中查询字句,分别是where条件查询,group by分组查询,having,order by排序查询,limit 限制查询 此次测试数据我是用的zabbix的数据,每个人只需要从zabbix官网上将源码包下载下载,解压就可以了,最后在将数据导入到数据库即可。如果不会可以参考我的博客 zabbix server环境的搭建:http://blog.csdn.net/m0_378864原创 2017-06-14 14:15:46 · 4656 阅读 · 0 评论 -
mysql的5中查询子句之四order by排序查询
order by 主要是根据字段来排序,可以升序也可以降序,默认是升序排列,如果通过字段声明的话,升序排列用 asc , 降序排列用 desc 有可能一个字段排不出来结果,可以选用其它字段继续排序order by 字段1 [asc/desc],字段2 [asc/desc].....1、将功能change按照触发器id升序排序mysql> select functionid,triggerid,fu原创 2017-06-19 10:57:58 · 834 阅读 · 0 评论 -
mysql的5中查询子句之五limit限制查询
limit 在语句最后,起到限制条目的作用。它的语法limit [offset,]Noffset 偏移量,如果offset不写,默认是0,NN 取出的条目1、取出触发器id最高的前三个项目mysql> select functionid,itemid,triggerid,function from functions order by triggerid desc limit 3;2、取出触发原创 2017-06-20 10:50:40 · 5299 阅读 · 0 评论 -
mysql的存储过程
一、定义存储过程类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现。 在封装的语句体里面,可以用if/else,case,while 等控制结构,也可以进行sql编程二、创建练习的表create table articles (id INT UNSIGNED auto_increment not null primary key NOT NULL PRIM原创 2017-06-07 11:29:02 · 476 阅读 · 0 评论 -
监控MySQL时用户授权
在我们监控MySQL的时候,需要连接到MySQL数据库,但是在进行用户授权的时候,要遵循权限最小化的原则,分配最简单够用的权限即可,下面是我给生产MySQL的监控用户授权。mysql> grant select,process,replication client on *.* to monitor@'10.47.61.142' identified by 'xxxxxxxxx';mysql>原创 2017-05-09 15:21:27 · 2446 阅读 · 1 评论