随笔分类 - 数据库
摘要:源码包下载: https://dev.mysql.com/downloads/mysql/ 选择SourceCode翻到下面的tar.gz包下载即可 放一张网图,Mysql源码安装的最佳路径: 先把源码包放在/usr/local下,解压出来再改个名 tar -zxvf mysql-5.6.45-li
阅读全文
摘要:在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 打扫屋子 清理残余mysql rpm -qa | grep -i mysql 使用yum清除mysql yum -y remove MySQL-
阅读全文
摘要:防火墙、参数这些就不用说了,最基本的,填错了就当眼瞎了。最重要的是这个:增加允许远程连接 MySQL 用户并授权 很多朋友(包括我)拿到一条命令,好家伙直接欢欢喜喜拿去运行,运行完了一看运行正常,没报错,ok继续验证,发现没用,心想:垃圾东西。各位,好好看看这里的参数: grant all PRIV
阅读全文
摘要:mysql下载器下载了mysql worbench后无法连接远端数据库,提示SSL之类的错误 解决方案:不使用SSL,在Advance TAB页的others框中输入参数:useSSL=0,就可以连接上了。 有时候本地连接可以,但远程连接不行,并且报错:Host is not allowed to
阅读全文
摘要:Mysql导出文件时显示: mysql> select * from users into outfile '/root/users.txt'; ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv o
阅读全文
摘要:触发器和时间都是mysql服务器会进行自动调用的存储例程,因此我这里放在一起讲了,原理非常简单,但是好像蛮少用的。 触发器 触发器的应用场景应该是相对广泛的,触发器,顾名思义就是在做某一个操作的时候就它就会工作。而mysql的对记录的操作无非就是增删改,因此,触发器会在增删改操作前后自动执行一些额外
阅读全文
摘要:存储函数与存储过程 存储函数: 定义时需要使用RETURNS声明返回类型,并在函数体使用RETURN指定返回值 使用时直接进行函数调用 不支持IN、OUT、INOUT指定参数前缀 只可返回一个结果 执行过程中,产生的结果集不会显示出来 存储过程: 无需返回值 使用call 关键字进行调用 支持指定I
阅读全文
摘要:存储程序按照调用方式的不同,可分为:存储例程、触发器、事件。存储例程又可以分为存储函数和存储过程。在这里,主要讲存储例程,因为触发器、事件都是由Mysql自动调用的,存储例程是人工写的。 以前的SQL都是单挑语句的执行,顶多语句复杂一点,现在从更高维度来看待SQL,多条SQL将封装成一个程序。那么就
阅读全文
摘要:如果一个较长、复杂的SQL语句经常被使用,那么视图View就派上用场了。它可以看成是查询语句的别名,用一个短短的名字就可以代表一大串长SQL。 使用视图 create view table_view as select …… 查询视图 show tables; 视图原理 视图就相当于某个查询语句的别
阅读全文
摘要:常规 SQL语句不一定必须要以 ; 结尾,还可以以 \ g 或者 \G 结尾。其中 \g 和 ; 是一样的(类似),而 \G是将结果垂直方式输出。在列数较多的情况下,表格输出反而显得更乱 使用以 \G 为行尾,还可以查看表的创建语句,以查看表的结构信息: 修改表名: alter table tab_
阅读全文
摘要:存储引擎将数据存储在磁盘中,查询数据时会选择合适的执行计划将数据查询,执行计划的选择取决于SQL语句执行的成本。而当我们在讨论查询的成本时,一般有两部分: I/O成本:查询时需要将磁盘上的数据加载到内存中。这个过程损耗的时间即I/O成本 CPU成本:读取记录、检测记录是否满足搜索条件、排序等操作的时
阅读全文
摘要:单表查询 单表查询的语句实际上是一种声明式的语法,只是告诉MySQL要获取的数据符合哪些规则,至于具体的执行方式是MySQL自己来定。针对不同的场景,也有不同的执行计划, MySQL基于开销(cost)的优化器策略,哪种执行计划开销更低,就意味着性能更好,速度更快,就选择哪一种。以下是执行计划的类型
阅读全文
摘要:InnoDB引擎内部存放着各种各样的页(page),这些page也分为各种不同的类型。如:FIL_PAGE_INDEX数据页(带有真实数据的)、FIL_PAGE_TYPE_ALLOCATED未分配页、FIL_PAGE_TYPE_BLOG溢出页……等十多个类型的页,用于不同的用途: 补充:页面管理的分
阅读全文
摘要:前置概念: 磁盘预读:内存跟磁盘在发生数据交互的时候,一般情况下有一个最小的逻辑单元,即"页"/"datapage",页一般由操作系统决定是多大,一般是4k或8k。而进行数据交互的时候,可以取页的整数倍来读取。如innodb引擎每次读取数据都是16k B+树 每个关键字对应一棵子树 每个结点关键字个
阅读全文
摘要:目前在SpringBoot中的使用Mybatis的pom文件是 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>
阅读全文
摘要:这是报错信息 Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represen
阅读全文
摘要:一般这种情况都可以用安全模式下修改来解决。安全模式下即跳过权限检查,输入账号后直接登录进mysql 1.使用管理员权限打开dos窗口,进入mysql安装目录的bin文件夹下,将Mysql服务关闭 sc stop mysql 2.以安全模式启动mysql mysqld --skip-grant-tab
阅读全文
摘要:MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。M
阅读全文
摘要:这个查询功能会在一次替补打卡的过程中检测两次,第一次在选中日期时,提示已存在, 但不会阻止继续操作,在保存时通过接口,才会真正阻止保存操作。 首先在前台将需要检查的时间和打卡用户的身份证号共同传入接口,业务层和控制层都是基本使用Boolean判断,所以直接上SQL: 解释一波:这里的date是传过来
阅读全文
摘要:功能写完发现数据库里好多关键字段是空的,可以直接删掉,可直接: DELETE FROM 表名 WHERE 字段 IS NULL OR TRIM(字段) = ''
阅读全文