
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 · 1585 阅读 · 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 · 1673 阅读 · 0 评论 -
MySQL delete删除数据后,释放磁盘空间
当 MySQL 数据库服务删除部分数据后;有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放。以下是对这种情况的简单说明:一、删除表|清空数据表当执行删除数据表或者清空数据表的全部数据操作时,都会释放掉相应的磁盘存储空间。drop table table_name;truncate table table_name;在MyISAM和InnoDB(innodb_file_per_table)存储引擎中,数据信息存在在单个文件中。删除表操作和清空数据表操作都会释放空间。二、删原创 2021-12-10 10:04:50 · 19136 阅读 · 0 评论 -
MySQL优化工具AWR
俗话说工欲善其事,必先利其器,定期对 MYSQL数据库 进行一个体检,是保证数据库安全运行的重要手段,因为,好的工具是使你的工作效率倍增!今天和大家分享几个 MySQL 优化的工具,你可以使用它们对你的 MYSQL 进行一个体检,生成awr报告,让你从整体上把握你的数据库的性能情况。一、mysqltuner.pl是 MySQL 一个常用的数据库性能诊断工具,主要检查参数设置的合理性包括日志文件、存储引擎、安全建议及性能分析。针对潜在的问题,给出改进的建议。是 MYSQL 优化的好帮手。MySQ翻译 2021-08-20 14:11:34 · 701 阅读 · 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 · 376 阅读 · 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 · 4570 阅读 · 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 · 5730 阅读 · 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 · 4005 阅读 · 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 · 1120 阅读 · 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 · 1310 阅读 · 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 · 1006 阅读 · 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 · 969 阅读 · 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 · 334 阅读 · 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 · 676 阅读 · 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 · 14672 阅读 · 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 · 993 阅读 · 0 评论 -
MySQL多实例配置文件在一个文件内的启动和关闭问题
有一次在帮朋友解决问题的时候,他们服务器的MySQL是多实例的,在上面做了主从配置,之前我用的多实例是多个配置文件,本文主要介绍多实例在一个配置文件中的启动和关闭问题配置文件内容[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /usr/local/mysql/bin/mysqladminu...原创 2018-05-12 16:34:47 · 730 阅读 · 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 · 1959 阅读 · 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 · 2586 阅读 · 1 评论 -
MySQL多实例配置
一、简介 多实例就是一台服务器上开启多个不同的服务端口(默认3306),运行多个mysql的服务进程,这此服务进程通过不同的socket监听不同的服务端口来提供各在的服务,所有实例之间共同使用一套MySQL的安装程序,但各自使用不同的配置文件、启动程序、数据文件,在逻辑上是相对独立的。 多实例主要作用是:充分利用现有的服务器硬件资源,为不同的服务提供数据服务,但是如果某个实例并发比较原创 2018-02-06 10:59:08 · 626 阅读 · 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 · 10486 阅读 · 6 评论 -
MySQL升级
MySQL5.7新增了不少新功能,比如:Online DDL、多源复制、增强半同步、表空间传输、sys 库、Group Replication等。一、MySQL升级的两种方式1、in-place upgrade: 适合小版本的升级。 即 关闭当前的MySQL,替换当前的二进制文件或包,在现有的数据目录上重启MySQL,并运行mysql_upgrade. 特点:不翻译 2018-01-16 15:14:01 · 811 阅读 · 0 评论 -
启动mysql时占用物理内存和虚拟内存过高问题
MySQL 5.5版本以后新增一个存储引擎:命名performance_schema ,主要用于收集数据库服务器性能参数。performance_schema提供以下功能: 1.提供进程等待的详细信息,包括锁、互斥变量、文件信息; 2.保存历史的事件汇总信息,为提供MySQL服务器性能做出详细的判断; 3.对于新增和删除监控事件点都非常容易,并可以随意改变mysql服务器的监控周期,原创 2017-12-22 14:58:13 · 3921 阅读 · 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 · 35160 阅读 · 16 评论 -
pymysql操作mysql数据库
在python2.7种主要用的是MySQLdb模块,在python3.X版本中用的是pymysql模块,两者的用法是完全一样的,就是名字不同而已。安装模块的方法主要是用pip命令,下面我用pymysql模块做分析。一、数据库信息#!/usr/bin/env python#-*- coding:utf-8 -*-...原创 2017-12-12 10:26:35 · 960 阅读 · 0 评论 -
Linux phpMyAdmin 导入大文件
我们用phpMyAdmin导入SQL文件的时候,一般最大不会超过64M,但是有时很多情况下导入SQL文件都超过了64M,所以需要我们重新配置下phpmyadmin一、修改 phpMyAdmin 配置文件 修改 config.inc.php,有的版本可能只有config.sample.inc.php,可以复制一份重命名为 config.inc.php。将其中的: $cfg['UploadDi原创 2017-11-09 14:40:37 · 979 阅读 · 0 评论 -
MySQL高可用方案
一、drop table解决方案 情况一:表很重要 ①停服务,挂维护页面,保证数据一致性 ②找一个新的数据库,同时对故障库进行备份 ③恢复日志,恢复完毕后,将故障库的binlog,复制到新的数据库上 ④获取故障前一刻binlog的位置,将增量binlog导入到新数据库中 ⑤对外启动服务 ⑥再次备份 情况二:表不是很重要 创建新表二、架构扩展方原创 2017-11-06 11:38:53 · 585 阅读 · 0 评论 -
MySQL的半同步复制和延时复制
半同步复制一、半同步复制的原理 1、当Slave主机连接到Master时,能够查看其是否处于半同步复制的机制。 2、当Master上开启半同步复制的功能时,至少应该有一个Slave开启其功能。此时,一个线程在Master上提交事务将受到阻塞,直到得知一个已开启半同步复制功能的Slave已收到此事务的所有事件,或等待超时。 3、当一个事务的事件都已写入其relay-log中且已刷新到磁原创 2017-11-06 11:06:11 · 2844 阅读 · 0 评论 -
SQL使用技巧
一、一些常见的SQL实践(1)负向条件查询不能使用索引select * from order where status!=0 and stauts!=1not in/not exists都不是好习惯可以优化为in查询:select * from order where status in(2,3)(2)前导模糊查询不能使用索引select * from order where desc like翻译 2017-10-23 14:09:45 · 479 阅读 · 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 · 431 阅读 · 0 评论 -
二进制日志恢复数据库数据
一、新建一个目录来存放二进制日志文件,并在配置文件中添加log-bin字段,指定存放二进制日志文件的位置[root@linux-node2 ~]# mkdir /var/lib/mysql-log[root@linux-node2 ~]# chown mysql. /var/lib/mysql-log -R[root@linux-node2 ~]# grep 'log-bin' /etc/my原创 2017-10-18 12:02:23 · 1315 阅读 · 0 评论 -
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 · 765 阅读 · 0 评论 -
Mysql忘记密码
一、停止服务[root@linux-node2 ~]# systemctl stop mysql二、忽略授权表登录[root@linux-node2 ~]# mysqld_safe --skip-grant-tables &[root@linux-node2 ~]# mysqlmysql [(none)]> use mysql;mysql [mysql]> update user set原创 2017-10-16 14:02:50 · 649 阅读 · 0 评论 -
Mysql Windows安装
一、下载mysql的包https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.37-winx64.zip二、解压到指定的目录 MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装,一般MySQL将会安装在C:\Program Files\MySQL\MySQL Serv原创 2017-09-14 11:41:07 · 801 阅读 · 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 · 1042 阅读 · 0 评论 -
MySQL的字符集设定
我们有时在查看数据库数据时,看到一写乱码,这是由于mysql数据库字符集设定的问题,下面我就来谈谈如何正确设定字符集在mysql中可以设定的字符集有:①服务器默认字符集 ②数据库字符集 ③表的字符集 ④列的字符集。 如果一个级别没有设置字符集,则继承上一级的字符集,即如果表没有设置字符集会自动继承数据库的字符集mysql> show character set;原创 2017-08-14 13:41:03 · 2463 阅读 · 1 评论 -
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 · 546 阅读 · 0 评论 -
MySQL的外键
外键(foreign key)作用: 用于约束处于关系内的实体 增加从表记录时,是否有与之对应的主表记录,如果有,则可以添加,没有则会 报错。 创建外键的语法:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(从表字段) references 主表(主表字段)删除外键的语法:alter table 表名 drop fo原创 2017-08-04 14:44:09 · 432 阅读 · 0 评论 -
phpMyAdmin - Error:Failed to generate random CSRF token!
如果phpmyadmin报错:Error:Failed to generate random CSRF token!需要检查一下php.ini中的 session.save_path 的配置解决方式: 1、在php.ini文件中设置session.save_path的值,并创建该路径对应的文件夹,设置权限为可以写入和读取,并设置session.auto_start的值为1; 2、将session原创 2017-07-12 14:54:43 · 4677 阅读 · 0 评论 -
MySQL数据库优化
一、硬件优化(不要用虚拟机,要用物理机)1、CPU:尽量采用64位cpu ,一台机器8-16颗cpu2、mem(内存):一般情况下 96G-128G ,跑3-4个实例; 32G-64G ,跑2个实例3、disk盘:数量越多越好。性能 ssd(高并发) > sas(普通业务线上) > sata(线下)4、磁盘raid: raid10>raid5>raid1(主库用raid10,从库用raid0原创 2017-06-27 09:38:58 · 538 阅读 · 0 评论