202010-09 MySQL存储过程及常用函数代码解析 mysql存储过程的概念:存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段。mysql函数的概念:函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-definedfunctionUDF)MySQL存储过程和函数的区别存储过程可以有多个in,out,inout参数,而函数只有输入参数类型,而且不能带in.存储过程实现的功能要复杂一些;而函数的单一功能性(针对性)更强。存储过程可以返回多个值;存储函数只能有... 继续阅读 >
202010-09 MySQL 5.7.27下载安装配置的详细教程 前言在安装MySQL的时候会遇到很多问题,博客上有很多解决问题的办法,在这里我附上一些链接,遇到问题的朋友们可以阅读参考哈~本文主要针对于刚接触数据库的小白,来安装MySQL数据库。目前官网上的MySQL版本有5.5,5.6,5.7和8,在开发的时候我们一般要选择比最新版低1到2个版本的,因此我选择了5.7作为要安装的数据库1.下载步骤1.访问官方网站:https://www.mysql.com/选择Downloads下的Community2.下载对应的版本点击上图的MySQL... 继续阅读 >
202010-09 MySQL 如何查找并删除重复记录的实现 大家好,我是只谈技术不剪发的Tony老师。由于一些历史原因或者误操作,可能会导致数据表中存在重复的记录;今天我们就来谈谈如何查找MySQL表中的重复数据以及如何删除这些重复的记录。创建示例表首先创建一个示例表people并生成一些数据:droptableifexistspeople;createtablepeople(idintauto_incrementprimarykey,namevarchar(50)notnull,emailvarchar(100)notnull);insertintopeople(name,email)v... 继续阅读 >
202010-09 浅析MySQL 备份与恢复 1、简介数据无价,MySQL作为一个数据库系统,其备份自然也是非常重要且有必要去做。备份的理由千千万,预防故障,安全需求,回滚,审计,删了又改的需求等等,备份的重要性不言而喻。除了备份本身,如何使用备份来恢复服务也是一项重点内容,不能用来恢复的备份没有意义。本文主要会针对备份和恢复这两方面做一些简单的介绍。本文为《高性能MySQL》备份相关章节的读书笔记。2、备份和恢复的简单定义正如简介所说,备份人尽皆知,... 继续阅读 >
202010-09 MySQL 4种常用的主从复制架构 一主多从复制架构在主库读取请求压力非常大的场景下,可以通过配置一主多从复制架构实现读写分离,把大量的对实时性要求不是特别高的读请求通过负载均衡分部到多个从库上(对于实时性要求很高的读请求可以让从主库去读),降低主库的读取压力,如下图所示。在主库出现异常宕机的情况下,可以把一个从库切换为主库继续提供服务。在主从复制场景下会出现主从延迟,想想该怎么解决?多级复制架构一主多从的架构能够解决大部分读请求压力... 继续阅读 >
202010-09 JDBC如何访问MySQL数据库,并增删查改 导入驱动包,加载具体的驱动类导包:新建一个JavaProject文件,在此文件夹下新建Folder文件命名lib(此文件夹下放一些导入的包)将mysql-connector-java-xxxx.jar拖进来,右键BuildPath→AddtoBuildPath;(这里我用的是mysql-connector-java-8.0.20.jar)加载具体的驱动类:Class.forName("com.mysql.cj.jdbc.Driver");与数据库建立连接connectionStringurl="jdbc:mysql://localhost:3306/****?serverTimezone=... 继续阅读 >
202010-09 简述MySQL InnoDB存储引擎 前言:存储引擎是数据库的核心,对于MySQL来说,存储引擎是以插件的形式运行的。虽然MySQL支持种类繁多的存储引擎,但最常用的当属InnoDB了,本篇文章将主要介绍InnoDB存储引擎相关知识。1.InnoDB简介MySQL5.5版本以后,默认存储引擎就是InnoDB了。InnoDB是一种兼顾了高可靠性和高性能的通用存储引擎。在MySQL5.7中,除非你配置了其他默认存储引擎,否则执行CREATETABLE不指定ENGINE的语句将创建一个InnoD... 继续阅读 >
202010-09 详解MySQL8.0 字典表增强 MySQL中数据字典是数据库重要的组成部分之一,INFORMATION_SCHEMA首次引入于MySQL5.0,作为一种从正在运行的MySQL服务器检索元数据的标准兼容方式。用于存储数据元数据、统计信息、以及有关MySQLserver的访问信息(例如:数据库名或表名,字段的数据类型和访问权限等)。8.0之前:1、元数据来自文件2、采用MEMORY表引擎3、frm文件存放表结构信息4、opt文件,记录了每个库的一些基本信息,包括库的字符集等信息5、.TRN,.TRG文... 继续阅读 >
202010-09 如何优雅、安全的关闭MySQL进程 前言本文分析了mysqld进程关闭的过程,以及如何安全、缓和地关闭MySQL实例,对这个过程不甚清楚的同学可以参考下。关闭过程1、发起shutdown,发出SIGTERM信号2、有必要的话,新建一个关闭线程(shutdownthread)如果是客户端发起的关闭,则会新建一个专用的关闭线程如果是直接收到SIGTERM信号进行关闭的话,专门负责信号处理的线程就会负责关闭工作,或者新建一个独立的线程负责这个事当无法创建独立的关闭线程时(例如内... 继续阅读 >
202010-09 MySQL 如何查询当前最新事务ID 写在前面:在个别时候可能需要查看当前最新的事务ID,以便做一些业务逻辑上的判断(例如利用事务ID变化以及前后时差,统计每次事务的响应时长等用途)。通常地,我们有两种方法可以查看当前的事务ID:1、执行SHOWENGINEINNODBSTATUS,查看事务相关信息=====================================15030317:16:11INNODBMONITOROUTPUT=====================================Persecondaveragescalculatedfromthelast15... 继续阅读 >
202010-09 MySQL 行锁和表锁的含义及区别详解 一、前言对于行锁和表锁的含义区别,在面试中应该是高频出现的,我们应该对MySQL中的锁有一个系统的认识,更详细的需要自行查阅资料,本篇为概括性的总结回答。MySQL常用引擎有MyISAM和InnoDB,而InnoDB是mysql默认的引擎。MyISAM不支持行锁,而InnoDB支持行锁和表锁。相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。MySQL大致可归纳为以下3种锁:表级锁:开销小,加锁快;不会出... 继续阅读 >
202010-09 MySQL如何快速修改表的表结构 快速修改MySQL某张表的表结构--摘录自《MySQL管理之道》ALTERTABLE表名MODIFY列名数据类型;这个命令可以修改表结构此外,也可以如下方法修改表结构:先创建一张表,如下:>createtablet1(idint,namevarchar(5),rmbdecimal(9,1));如果要修改name列为varchar(10)的,可以这样操作:altertablet1modifynamevarchar(7);也可以如下操作:1、查看表结构,如下:>usetest;>desct1;+-------+--------------+... 继续阅读 >
202010-09 保障MySQL数据安全的一些建议 数据是企业核心资产,数据对企业而言是最重要的工作之一。稍有不慎,极有可能发生数据无意泄露,甚至被黑客恶意窃取的风险。每年业界都会传出几起大事件,某知名或不知名的公司被脱裤(拖库的谐音,意思是整个数据库被黑客盗取)之类的。从数据安全上也可以分为外网安全及内部操作安全,下面分别讨论一下。内部操作安全策略1.是否回收DBA全部权限试想,如果DBA没权限了,日常DB运维的活,以及紧急故障处理,该怎么实施呢?因此,... 继续阅读 >
202010-09 python如何操作mysql mysql使用启动服务sudosystemctlstartmysqlpip3installpymysqlpython操作数据库:定义类importpymysqlclassMyDb():def__init__(self,host,user,passwd,db):self.__db=pymysql.connect(host,user,passwd,db)self.__cursor=self.__db.cursor()#增删改-数据库defset(self,sql):try:self.__cursor.execute(sql)self.__db.commit()exceptExceptionase:self._... 继续阅读 >
202010-09 mysql不是内部命令的错误解决方案 出现mysql不是内部命令的错误是因为没有把mysql的bin目录路径添加到环境变量中解决方法:打开电脑的环境变量,选择系统变量,打开Path,将mysql的bin目录路径添加进去就可以了示例如下:未添加环境变量前添加环境变量添加环境变量之后,重新启动mysql内容扩展:原来都是用可视化工具去调用数据库,今天用命令行突然发现:mysql'不是内部或外部命令,也不是可运行的程序或批处理文件。经过一番折腾找到了哪错了,给你们分享一下注... 继续阅读 >
202010-09 如何解决mysql无法关闭的问题 mysql关闭不了的解决办法:右键点击电脑的任务栏,打开任务管理器点击服务,找到mysql服务右键点击该服务,选择停止就可以了内容扩展:mac系统mysqld进程无法kill掉的问题mac安装比linux恶心的太多,权限太受限制kill-9根本无法杀死mysqld进程,查了好久原来是因为LaunchDeamons定时任务守护mysqld进程解决方法:sudolaunchctlunload-w/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist文件名为自己相应目录下的文... 继续阅读 >