摘要:
复制功能是将一个mysql数据库上的数据复到一个或多个mysql从数据库上。 复制的原理:在主服务器上执行的所有DDL和DML语句都会被记录到二进制日志中,这些日志由连接到它的从服务器获取,并复制到从库,并保存为中继日志, 这个过程由一个称为 IO线程 的线程负责,还有一个称为 SQL线程 的则按顺 阅读全文
摘要:
一、使用mysqldump进行备份 1、完整备份所有数据库 在mysql8之前,存储过程和事件存储在mysql.proc和mysql.event表中。 从mysql8开始,相应对象的定义存储在数据字典中,这些表不会被备份。 要将存储过程和事件也包含,请使用如下语句: 2、时间点恢复 要获得时间点恢复 阅读全文
摘要:
事务,我们都知道具有原子性,操作要么全部成功,要么全部失败。但是有可能会造成误解。 我们先准备一张表,来进行测试 一、如果事务中,有某条sql语句执行时报错了,我们没有手动的commit,那整个事务会自动回滚吗? 答案:会。 当我们直接把窗口关掉,新开窗口再去查询表name时,表中没有第一次插入的记 阅读全文
摘要:
事务就是一组一起成功或一起失败的sql语句。事务还应该具备,原子性,一致性,隔离性和持久性。 一、事务的基本要素 (ACID) 1、原子性:事务开始后,所有的操作,要么全部成功,要么全部失败,不可能处于中间状态,事务是一个不可分割的整体,就像原子一样。 2、一致性:事务开始前和结束后,数据库的完整性 阅读全文
摘要:
生成列的值是根据列定义中的表达式计算得出的。 mysql5.7支持两种类型的生成列: 1、virtual 生成列:当从表中读取记录时,才计算该列值。不会把数据持久化在硬盘上。 2、stored 生成列:向表中写入记录时,计算该列值,并作为常规列持久化存储在硬盘上。 所以 virtual 相较于 st 阅读全文
摘要:
公用表表达式CTE就是命名的临时结果集,作用范围是当前语句。 说白点你可以理解成一个可以复用的子查询,当然跟子查询还是有点区别的,CTE可以引用其他CTE,但子查询不能引用其他子查询。 一、cte的语法格式: 二、哪些地方可以使用with语句创建cte 1、select, update,delete 阅读全文
摘要:
一、我们先创建一个表,准备点数据 二、检索json列的字段 通过使用 -> 或 ->> 运算符检索json列的字段 使用 -> 和 ->> 的区别是结果用了引号包裹。 三、处理json的一些函数 JSON_PRETTY(json_val) 以优雅的格式显示json值 JSON_CONTAINS(ta 阅读全文
摘要:
一、准备两张表,文章表和评伦表 随便搞点测试数据 我们运行如下语句: 结果如上所示,主表中有多条记录重复显示了,因为条件 on c.a_id = a.id 主表中的一条记录对应右表中的多条记录,这种1 : n 的情况, left join 的处理方法是主表以重复的方式对应多条右表记录出现在结果集中。 阅读全文
摘要:
一、下载mysql二进制安装包 mysql官网: https://dev.mysql.com/downloads/mysql/ 由于国内网络问题,个人建议使用国内开源镜像站下载: http://mirrors.163.com/mysql/Downloads/MySQL-8.0/ http://mir 阅读全文
摘要:
一、首先我们准备两张表来进行测试。 两个表的数据如图所示: 运行下面左连接查询: 我们分别在on和where后面加上条件,看看执行结果是否相同。 上面的两条语句,条件我们设置的是一样的都是b.id > 3,为什么显示结果不同。 sql语句查询的关键字顺序一般为 from > where > grou 阅读全文
摘要:
通常我们需要连接多个表查询数据,以获取想要的结果。 一、连接可以分为三类: (1) 内连接:join,inner join (2) 外连接:left join,left outer join,right join,right outer join,union,union all (3) 交叉连接:c 阅读全文
摘要:
出现这个原因,是因为提交数据时,被YII2的CSRF验证给拦截了。 只需要在当前控制器设置一个属性,关闭该验证就可以了。 阅读全文
摘要:
解决方法是修改php.ini配置: 把前面的分号去掉 然后重启服务器 阅读全文
摘要:
收银机上的sqlite数据库经常出现这种错误,错误的原因有可能是突然断电或是一些不规范操作导致的。 网上一般的做法有两种: 方法一: 1、在https://www.sqlite.org/download.html网站上下载sqlite-tools工具,我下载的是 http://sqlite-tool 阅读全文
摘要:
1、下载mysql-8.0.13安装包 选择zip安装包下载就好。 2、解压到你要安装的目录 3、创建my.ini配置文件 4、以管理员的身份运行命令行程序,进入mysql的bin目录下,并运行安装指令 不带密码的: 自动随机生成密码的: 安装并启动服务: 5、使用上面随机生成的密码登陆mysql并 阅读全文
摘要:
最近使用YII2,自定义创建了一个自定义模块users,位置为app\modules\users。 并且在config/web.php中开启了路由配置。 但该模块一直无法访问,这时候需要在web目录下创建.htaccess文件,就可以访问了。 阅读全文
摘要:
有些时候我们已经在textarea中输入了一些字符,然后想在鼠标指定的位置插入表情或者字符,这就需要用到jquery的一个小插件了。 代码如下: 我们写个小页面,测试一下该插件。 显示如下: 阅读全文
摘要:
我们使用pthreads,来写一个多线程的抓取页面小程序,把结果存到数据库里。 数据表结构如下: 代码如下: 由于使用到了QueryList,大家可以通过composer进行安装。 不过安装的版本是3.2,在我的php7.2下会有问题,由于each()已经被废弃,所以修改下源码,each()全换成f 阅读全文
摘要:
一、子线程无法访问父线程的全局变量,但父线程可以访问子线程的变量 结果如下: 二、子线程无法修改父线程的变量 结果如下: 三、pthreads v3版本可以设置成员为匿名函数 结果如下: 四、对于数据库连接资源,我们需要声明为静态成员 结果如下: 代码修改如下: 结果如下: 最后说明,不排除pthr 阅读全文
摘要:
由于pthreads v3中引入了Threaded对象自动不变性的概念,所以当我们在构造函数中给成员设置为数组时,在其他地方就无法对成员再次改写了。 例子如下: 如果我们对成员再次进行改写,那么就会报错了。 如果确实需要对成员数据进行改写,除了上面的显式强制转换外,另一个方法就是继承Volatile 阅读全文