![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
15 mysql
文章平均质量分 50
未名who
不是在学习,就是在学习的路上。。。
展开
-
Navicat通过跳板机连接mysql
如果对数据库配置了只允许特定IP才能访问的话,此时使用跳板机连接到数据库则是一个安全便捷的操作。特别是我们自己本地机器IP经常随着网络改变的情况下,通过跳板机连接数据库更是显示有必要了。直接进入教程1,首先确定一台IP固定不变的机器作为我们连接数据库的跳板机,如固定IP:10.19.37.2402,在mysql数据库中配置IP(10.19.37.240)的访问权限,保存能够在10.19.37.240机器上访问该数据库3,在需要通过跳板机连接数据库的机器上进行如下操作:1)打开navica原创 2021-11-07 14:17:20 · 4881 阅读 · 0 评论 -
MySQL_插入更新 ON DUPLICATE KEY UPDATE
平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件.此时 插入数据的时候 ,经常会有这样的情况:我们想向数据库插入一条记录: 若数据表中存在以相同主键的记录,我们就更新该条记录。 否则就插入一条新的记录。逻辑上我们需要怎么写:$result = mysql_query('select * from xxx where id = 1');$r...转载 2018-02-28 14:37:10 · 427 阅读 · 0 评论 -
windows远程连接mysql 以及10060/ 1130/ 10045错误
1.检查mysql是否已经开启远程连接(1)在cmd中登录本机mysql服务,使用mysql数据库,输入select host,user from user; 显示如下,表示已经可以远程连接。(2)若没有像如下显示,则首先对mysql授权远程连接。如下:登录本机mysql,使用mysql数据库,因为用户表都是存在mysql数据库里面的。输入命令:GRANT ALL PRIVILEGES ON *....原创 2018-05-17 20:00:25 · 14797 阅读 · 0 评论 -
Mysql--序列2--聚簇索引&非聚簇索引
而MySQL作为一个开源的数据库,在各大互联网公司使用极为普遍。本系列将从Mysql开始,一步步展示关于存储设计的诸多策略。说到InnoDB和MyISAM的区别,很多人都会提到一个支持事务,一个不支持;一个是行锁,一个是表锁(这个其实不准确,后面会详细阐述)。但跟日常使用最密切相关的,更基本的,其实是另外一个关键区别:InnoDB是聚簇索引,MyISAM是非聚簇索引。如下图所示:MyISAM的非聚...转载 2018-05-18 11:49:26 · 141 阅读 · 0 评论 -
Mysql--序列3-- 聚簇索引和二级索引
聚簇索引索引和数据存储在一块( 都存储在同一个B*tree 中)。 一般主键索引都是聚餐索引Mysql中InnoDB引擎的主键索引为聚簇索引,MyISAM存储引擎采用非聚集索引非聚簇索引索引数据和存储数据是分离的。二级索引(辅助索引)二级索引存储的是记录的主键,而不是数据存储的地址。以Mysql的InnoDB为例 主键是聚集索引 唯一索引、普通索引、前缀索引等都是二级索引(辅助索引)示例下面我们通...转载 2018-05-18 14:04:20 · 686 阅读 · 1 评论 -
MySQL索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...转载 2018-05-19 21:23:47 · 183 阅读 · 0 评论 -
mysql 1452 Cannot add or update a child row:a foreign key constraint fails
今天对已存在的两个表中的一个表添加另一个表的主键为外键,遇到以下错误:sql 1452 Cannot add or update a child row:a foreign key constraint fails1,原因:设置的外键和对应的另一个表的主键值不匹配。如表B的aId字段引用了表A的id字段作为外键,则B中aId的字段值可能在A中id中找不到,故报错2,解决方法:如表B的aId字段引用...原创 2018-05-20 03:14:23 · 1859 阅读 · 0 评论 -
使用Navicat生成ER关系图并导出
平时管理数据库一般都是用cmd命令提示符,或是IDEA Intellij自带的Data source,使用Navicat比较少。这段时间,由于要对前后端交互的数据结构进行设计,直接写文档联系多表时有些困难,想着如果有关系图就直观很多。想到Navicat本身就有这个功能,现在就去试试。首先,我们打开已经设计好的表视图界面:点击右下角的按钮切换到ER视图:那些表与表之间...转载 2018-05-20 03:19:21 · 13257 阅读 · 0 评论 -
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operatio
本人在进行数据库的操作时报错如下:Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='↵;主要原因是原来的数据库字符集是utf8,插入了不兼容的特殊字符:꧁原创 2018-06-25 17:07:04 · 4681 阅读 · 0 评论 -
数据库设计——评论回复功能
1、概述评论功能已经成为APP和网站开发中的必备功能。本文主要介绍评论功能的数据库设计。评论功能最主要的是发表评论和回复评论(删除功能在后台)。评论功能的拓展功能体现有以下几方面:(1)单篇文章的评论数量和信息展示;(2)从时间维度,按照时间倒叙的方式展示动态的用户评论信息;(3)不同栏目,不同模块,不同时间维度的评论排行展示;(4)精华评论的单独推荐和聚合展示;(5)评论后直接...转载 2018-07-24 00:54:57 · 2757 阅读 · 1 评论 -
mysql乐观锁总结和实践(分布式锁二)
上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍:...转载 2018-08-22 10:20:36 · 1156 阅读 · 0 评论 -
mysql(for update)悲观锁总结与实践(分布式锁一)
悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 使用场景举例:以MySQL InnoDB为例, 商品goods...转载 2018-08-21 22:22:46 · 2418 阅读 · 0 评论 -
MySQL使用可重复读作为默认隔离级别的原因(一)
一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQL Server等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越多,理论上性能损耗更大,可并发性越低。隔离级别依次为SERIALIZABLE > RR > RC > Read-Uncommite...转载 2019-01-01 17:54:55 · 1856 阅读 · 0 评论 -
MySQL使用可重复读作为默认隔离级别的原因(二)-》Innodb锁机制:Next-Key Lock 浅谈
数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性。InnoDB是一个支持行锁的存储引擎,锁的类型有:共享锁(S)、排他锁(X)、意向共享(IS)、意向排他(IX)。为了提供更好的并发,InnoDB提供了非锁定读:不需要等待访问行上的锁释放,读取行的一个快照。该方法是通过InnoDB的一个特性:MVCC来实现的。InnoDB有三种行锁的算法:1,Record Lock:单个行记录上...转载 2019-01-02 01:01:54 · 598 阅读 · 0 评论 -
Mybatis mysql错误:Column count doesn't match value count at row 1
当使用mybatis写好了sql运行时,报错部分内容如下Error updating database. Cause: java.sql.SQLException: Column count doesn't match value count at row 1\r\n### The error may involve com.network.dailyplanner.dao.EventDao...原创 2019-05-26 03:39:51 · 14026 阅读 · 3 评论 -
阿里云ECS上搭建MySql数据库
1,登陆到ECS服务实例上ssh root@123.56.104.1062,下载mysql的YUM源:wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm3,安装MySQLyum install mysql-community-server安装过程中一直输入"y"就可以了4,启...原创 2019-06-27 15:01:39 · 1076 阅读 · 0 评论 -
Redis缓存和MySQL数据一致性3种方案详解
需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MyS...原创 2019-07-20 16:16:00 · 2330 阅读 · 1 评论 -
Mysql 覆盖索引及其使用注意事项
一,什么叫覆盖索引网上对覆盖索引的定义有如下三种:解释一: 就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖。 解释二: 索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。 解释三:是非聚集组合索引的一种形式,...原创 2019-08-04 03:23:33 · 2076 阅读 · 0 评论 -
Mysql中的Cascade,NO ACTION,Restrict,SET NULL
外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句, InnoDB支持5种方式, 分列如下 : cascade方式 在父表上update/delete...转载 2018-02-28 10:09:30 · 283 阅读 · 0 评论 -
spring boot使用spring session,底层数据库mysql实现
1,pom.xml添加依赖: <!-- 数据库session管理 --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-jdbc</artifactId&g...原创 2018-02-26 13:38:42 · 4942 阅读 · 1 评论 -
mysql单列索引、多列索引的使用
一、简介 数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。 索引优化是数据库优化的最重要手段。 如果查询语句使用索引(通常是where条件匹配索引)就会利用树的结构加快查找,索引会按值查找到要查找的行在表中位置,不需回表查询数据的就是聚簇索引(...转载 2018-02-06 23:47:28 · 893 阅读 · 0 评论 -
MYSQL语句中 IF(expr1,expr2,expr3) 的 用法
mysql手册中如是说:IF(expr1,expr2,expr3) 如果 expr1 为真(expr1 NULL),那么 IF() 返回 expr2,否则返回 expr3。IF() 返回一个数字或字符串,这取决于它被使用的语境: mysql> SELECT IF(1>2,2,3); -> 3mysql> SELECT IF(1<2,'yes','no');转载 2016-09-12 17:03:11 · 3172 阅读 · 0 评论 -
mysql count过滤空值,使其不将空数据计入条数
当mysql中使用count分组统计数据时,如果不想使空值计入总数,我们可以使用如下解决方法1,首先看如下两个查询语句:(1)SELECT t.id, t.meetStyle, t.title, count(p.id) AS personCount, count(f.id) AS fileCount FROM meeting_info t LEFT原创 2016-08-22 09:51:03 · 8415 阅读 · 0 评论 -
mysql 5.7版本目录无data文件夹的解决办法
1,安装mysql 5.7+版本时,若发现因根目录下,缺少data文件夹的情况,***请不要去拷贝其他版本的data文件夹!***因为此操作会出现很多潜在问题:比如我遇到的执行show variables like "%charact%";语句时,报错表不存在!2,打开cmd命令窗口,并且进入到mysql安装目录的bin目录下。然后输入命令:mysqld转载 2016-08-12 09:27:21 · 2535 阅读 · 4 评论 -
Mysql 服务无法启动或提示“服务名无效” 的解决办法
以下CMD指令,均以管理员身份运行首先参考我的另一篇文章,win10 下安装、配置、启动mysql 确保服务已安装(因为有时虽安装了,可能被清理软件误删除了),没有安装的话就重装服务问题一,通过net start mysql无法启动,提示“MySQL 服务无法启动”:问题可能出现在Mysql安装目录下的data 文件夹里,(1)如果没有data文件夹,请参考mysql 5.7...原创 2016-08-14 11:16:48 · 7891 阅读 · 3 评论 -
MySQL修改root密码的多种方法
方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');方法2:用mysqladmin mysqladmin -u root password "newpass" 如果root已经设置过密码,采用如下方法 mysqladm原创 2016-12-02 19:46:24 · 521 阅读 · 0 评论 -
数据库的隔离级别介绍
数据库的隔离级别介绍:隔离级别的作用是能够保证多个线程同时操作一个数据时的正确性。1.读未提交:当你修改或者增加了一个数据,没有进行提交导致的脏读,重复读,幻读等。(备注:黑色窗口表示窗口一:白色窗口表示窗口二)将事务设置为读未提交,然后开启事务。这是事先建立的一个user表数据然后对其进行更新操作转载 2017-09-22 00:37:23 · 200 阅读 · 0 评论 -
win10 下Mysql安装、配置、启动
1、下载http://dev.mysql.com/downloads/mysql/2、Community > MySQL Community Server3、Other Downloads: > Windows (x86, 32-bit), ZIP Archive5、解压mysql-5.7.11-winx64.zip,解压在 D:\soft\mysql-5.7.11-wi...原创 2016-08-12 09:38:36 · 1398 阅读 · 0 评论 -
mysql 数设置据库编码及避免导入乱码问题
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如php)的连线语系设定问题一、避免创建数据库及表出现中文乱码和查看编码方法1、创建数据库的时候:CREATE DATABASE `test`原创 2016-09-14 23:59:24 · 327 阅读 · 0 评论 -
关于MySQL到JDBC类型映射
MySQL数据类型 JAVA数据类型 JDBC TYPE 普通变量类型 主键类型 BIGINT Long BIGINT 支持 支持 TINYINT Byte TINYINT 支持 不支持 SMALLINT Short SMALLINT 支持 不支持 MEDIUMINT Intege...转载 2018-01-03 10:22:19 · 654 阅读 · 0 评论 -
mysql 字符串比较 :STRCMP(str1, str2) 和java字符串比较: str1.compareTo(str2) 及软件版本比较
1,mysql字符串比较:STRCMP(str1, str2):比较两个字符串,如果这两个字符串相等返回0,如果第一个参数是根据当前的排序小于第二个参数顺序返回-1,否则返回1。注意:1,"." 小于 0或"0"2,不能用来比较软件版本大小:如:v1.0.0.2 实际 小于 v1.0.0.18 但按位比较到第4位时,2就比18大了,所以 select strcmp("v1.0.0.2","v1....原创 2018-01-25 15:31:50 · 3092 阅读 · 0 评论 -
mac mysql 未能载入偏好设置面板“MySQL”
1,问题:系统环境:MacOS 10.12安装mysql版本:5.7.21去偏好设置启动时报错:未能载入偏好设置面板“MySQL”1)原因: mac版本与mysql版本不兼容2)解决办法:安装5.6.39版本的mysql即可原创 2018-01-26 09:23:13 · 4919 阅读 · 0 评论 -
mac 安装mysql
安装MySQL双击mysql-5.7.9-osx10.10-x86_64.dmg文件,加载镜像双击mysql-5.7.9-osx10.9-x86_64.pkg,开始安装,进行选择确认后面流程,即可安装成功1,打开终端,设置变量:PATH = "$PATH":/usr/local/mysql/bin2,启动mysql服务:打开系统偏好设置,双击mysql,然后点击『start原创 2018-01-26 16:09:05 · 174 阅读 · 0 评论 -
mybatis实现对象参数注解和注解参数周时传入
1, 自定义对象也用@Param注解:public interface BizSdkGroupMapper { int updateById(@Param("oldBundleId") String oldBundleId, @Param("bizSdkGroup") BizSdkGroup bizSdkGroup); }2,在mapper.xml中使用的时候,#{对象别名.属性原创 2018-01-10 21:00:07 · 5510 阅读 · 0 评论 -
为什么数据库连接很消耗资源
本文主要想探究一下连接数据库的细节,尤其是在Web应用中要使用数据库来连接池,以免每次发送一次请求就重新建立一次连接。对于这个问题,答案都是一致的,建立数据库连接很耗时,但是这个耗时是都多少呢,又是分别在哪些方面产生的耗时呢?本文以连接MySQL数据库为例,因为MySQL数据库是开源的,其通信协议是公开的,所以我们能够详细分析建立连接的整个过程。 在本文中,消耗资源的分析主要集中在网络上,当然,...转载 2018-02-09 11:04:50 · 539 阅读 · 0 评论 -
数据库中长连接和短连接的区别分析
什么是长连接?其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是:连接-》数据传输-》关闭连接;而长连接通常就是:连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;这就要求长连接在没有数据通信时,定时发送数据包,以维持连接状态,短连接在没有数据传输时直接关闭就行了什么时候用长连接,短连接?长连接主要用于在少数客户端与服...转载 2018-02-09 11:15:20 · 915 阅读 · 0 评论 -
HashMap的尾部遍历问题--Tail Traversing
参考:http://stackoverflow.com/questions/22890967/java-hashmap-tail-traversing在看网上HashMap的resize()设计时,提到尾部遍历。JDK1.7的HashMap在实现resize()时,新table[]的列表采用LIFO方式,即队头插入。这样做的目的是:避免尾部遍历。参考stackoverf转载 2018-02-06 15:45:33 · 876 阅读 · 0 评论 -
MySql 如何查询某一天内的数据
比如要查询2016-08-06这天的数据,可使用如下sql语句:select * from tableName where '2016-08-06' >DATE_SUB(CreateTime, INTERVAL 1 DAY) and date_add(createtime,interval 1 day) > '2016-08-07'其中:date_add(createti原创 2016-08-08 11:55:01 · 6136 阅读 · 0 评论