MySQL复制简介 MySQL 从3.25.15版本开始提供数据库复制功能(replication)。MySQL复制是指从一个MySQL主服务器(MASTER)将数据复制到另一台或多台MySQL从服务器(SLAVE)的过程,将主数据库的DDL和DML操作通过二进制日志传到复制服务器上,然后在从服务器上对这些日志重新执行,从而使从服务器的数据保持同步。 在MySQL中,复制操作是异步进行的,slave服务器不需要持续的保持连接接收master服务器的数据MySQL支持一台主服务器同时向多台从服务器进行复制操作,从服务…

2022年12月9日 0条评论 271点热度 harry 阅读全文

优化简介 mysql优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统的反应速度。例如,通过优化文件系统,提高磁盘I/O的读写速度;通过优化操作系统调度策略,提高mysql在高负荷情况下的负载能力;优化表结构、索引、查询语句等使查询响应更快在mysql中,可以使用show status语句查询一些mysql的性能参数 show status like 'value'; 其中value是要查询的参数值,一些常用性能参数如下: connections:连接mysql服务器的次数 uptime:mysql服务…

2022年12月9日 0条评论 187点热度 harry 阅读全文

日志概述 MYSQL里的日志主要分为4类,使用这些日志文件,可以查看MYSQL内部发生的事情。分别是 错误日志:记录mysql服务的启动、运行、停止mysql服务时出现的问题 查询日志:记录建立的客户端连接和执行的语句 二进制日志:记录所有更改数据的语句,可以用于数据复制 慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询 默认情况下,所有日志创建于mysql数据目录中。通过刷新日志,可以强制mysql关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。 当执行一个…

2022年12月9日 0条评论 240点热度 harry 阅读全文

背景案例 一个博客,一个网站最重要的就是数据库,所以经常备份数据是必须的.尽管 WordPress 有定时备份数据的插件,但只能备份当前的博客,不够灵活.适合个人小小博客,对于一些网站来说,就不适合了.现在很多人都拥有多个网站,showfom就有几个网站.每个网站都装个插件就比较麻烦了。况且不是每个网站都是WordPress 的 。 所以写了个自动备份mysql数据库的脚本,再加上gmail这个G级邮箱,备份多少数据都可以了。下面是代码: mysqldump -uuser -ppassword --database…

2022年12月9日 0条评论 283点热度 harry 阅读全文

备份/恢复策略 1.定期做 mysql备份,并考虑系统可以承受的恢复时间。 2.确保 mysql 打开log-bin,有了 binarylog,mysql才可以在必要的时候做完整恢复,或基于时间点的恢复,或基于位置的恢复。 3.要经常做备份恢复测试,确保备份是有效的,并且是可以恢复的。 冷备份 备份 1.停掉 mysql服务,在操作系统级别备份 mysql的数据文件。 2.重启 mysql服务,备份重启以后生成的 binlog。 恢复 1.停掉 mysql服务,在操作系统级别恢复 mysql的数据文件。 2.重启 …

2022年10月12日 0条评论 211点热度 harry 阅读全文

权限概述 在mysql数据库中,有mysql_install_db脚本初始化权限表,存储权限的表有: user表 db表 host表 table_priv表 columns_priv表 proc_priv表 MySQL存取控制包含2个阶段: 阶段1:服务器检查你是否允许连接。 阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库中一个表精选(select)行或从数据库抛弃一个表,服务器确定你对表有「select」权限或对数据库有「drop」权限。 服务器在存取控制的两个…

2022年10月9日 0条评论 192点热度 harry 阅读全文

触发器是一个特殊的存储过程,不同的是存储过程要用CALL来调用,而触发器不需要使用CALL,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被MySQL自动调用。 创建触发器 语法如下: CREATE TRIGGER trigger_name trigger_time trigger_event     ON tbl_name FOR EACH ROW trigger_stmt 触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。 触发程序与命名为tbl_name的表相关。tbl_nam…

2022年10月8日 0条评论 201点热度 harry 阅读全文

为何使用视图? 使用视图的理由是什么? 1、安全性:一般是这样做的:创建一个视图,定义好该视图所操作的数据。 之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 2、查询性能提高 3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果。 这是在实际开发中比较有用的 4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。 创建视图 创建视图的语法 CREATE [OR REPL…

2022年9月27日 0条评论 183点热度 harry 阅读全文

MySQL中创建存储过程和函数分别使用CREATE PROCEDURE和CREATE FUNCTION,使用CALL语句来调用存储过程,存储过程也可以调用其他存储过程。函数可以从语句外调用,能返回标量值。 创建存储过程 语法 CREATE PROCEDURE sp_name ([ proc_parameter ]) [ characteristics..] routine_body  proc_parameter指定存储过程的参数列表,列表形式如下: [IN|OUT|INOUT] param_name type 其…

2022年9月26日 0条评论 216点热度 harry 阅读全文

前言 对于后端开发同学来说,访问数据库,是代码中必不可少的一个环节。 系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。 后端开发的日常工作,需要不断的建库和建表,来满足业务需求。 通常情况下,建库的频率比建表要低很多,所以,我们这篇文章主要讨论建表相关的内容。 如果我们在建表的时候不注意细节,等后面系统上线之后,表的维护成本变得非常高,而且很容易踩坑。 今天就跟大家一起聊聊,数据库建表的15个小技巧,希望对你会有所帮助。 1.名字 建表的时候,给表、字段和索引起个好…

2022年9月20日 0条评论 176点热度 harry 阅读全文
12