谁再说学不会MySQL数据库,就把这个给他扔过去
数据库是什么
数据库管理系统,简称为DBMS(DatabaseManagementSystem),是用来存储数据的管理系统。DBMS的重要性无法多人共享数据无法提供操作大量数据所需的格式实现读取自动化需要编程技术能力无法应对突发事故DBMS的种类层次性数据库最古老的数据库之一,因为突出的缺点,所以很少使用了关系型数据库采用行列二维表结构来管理数据库,类似Excel的结构,使用专用的SQL语言对数据进行控制。关系数据库管理系统的常见种类Oracle甲骨文SQLServce微软DB2IBMPostgreSQL开源MySQL开源面向对象的数据库XML数据库键值存储系统DB2RedisMongoDBSQL语句及其种类
DDL(数据定义语言)create创建数据库或者表等对象drop删除数据库或者表等对象alter修改数据库或者表等对象的结构DML(数据操作语言)select查询表中数据insert向表中插入数据update更新表中数据delete删除表中数据DCL(数据控制语言)commit决定对数据库中的数据进行变更rollback取消对数据库中的数据进行变更grant赋予用户操作权限revoke取消用户的操作权限SQL的基本书写规则SQL语句要以;结尾关键字不区分大小写,但是表中数据区分大小写关键字大写表名的首字母大写列明等小写常数的书写方式是固定的遇到字符串、日期等类型需要用到单词间需要使用空格分割命名规则数据库和表的名称可以使用英文、数据以及下划线名称必须以英文作为开头名称不能重复掌握SQL这些核心知识点,出去吹牛逼再也不担心了数据类型integer数字型,但是不能存放小数char定长字符串类型,指定最大长度,不足使用空格填充varchar可变长度字符串类型,指定最大长度,但是不足不填充data存储日期,年月日
以上内容是对通用数据库以及sql语句相关的知识点介绍,本文不做过多的赘述,本文主要针对关系型数据库:MySQL来进行各方面的知识点总结。MySQL数据库简介
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL是开源的,目前隶属于Oracle旗下产品。MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。MySQL使用标准的SQL数据语言形式。MySQL可以运行于多个系统上,并且支持多种语言。这些编程语言包括C、C、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统。
在日常工作与学习中,无论是开发、运维、还是测试,对于数据库的学习是不可避免的,同时也是日常工作的必备技术之一。在互联网公司,开源产品线比较多,互联网企业所用的数据库占比较重的还是MySQL。
更多关于MySQL数据库的介绍,有兴趣的读者可以参考官方网站的文档和这篇文章:可能是全网最好的MySQL重要知识点,关于MySQL架构的介绍可以参考:MySQL架构总览查询执行流程SQL解析顺序MySQL安装
MySQL8正式版8。0。11已发布,官方表示MySQL8要比MySQL5。7快2倍,还带来了大量的改进和更快的性能!到底谁最牛呢?请看:MySQL5。7vs8。0,哪个性能更牛?
详细的安装步骤请参阅:CentOS下MySQL8。0安装部署,超详细!,介绍几个8。0在关系数据库方面的主要新特性:MySQL8。0的5个新特性,太实用了!MySQL基础入门操作Windows服务启动MySQLnetstartmysql创建Windows服务sccreatemysqlbinPathmysqldbinpath(注意:等号与值之间有空格)连接与断开服务器mysqlh地址P端口u用户名p密码SHOWPROCESSLIST显示哪些线程正在运行SHOWVARIABLES显示系统变量信息数据库操作查看当前数据库SELECTDATABASE();显示当前时间、用户名、数据库版本SELECTnow(),user(),version();创建库CREATEDATABASE〔IFNOTEXISTS〕数据库名数据库选项数据库选项:CHARACTERSETcharsetnameCOLLATEcollationname查看已有库SHOWDATABASES〔LIKEPATTERN〕查看当前库信息SHOWCREATEDATABASE数据库名修改库的选项信息ALTERDATABASE库名选项信息删除库DROPDATABASE〔IFEXISTS〕数据库名同时删除该数据库相关的目录及其目录内容表的操作创建表CREATE〔TEMPORARY〕TABLE〔IFNOTEXISTS〕〔库名。〕表名(表的结构定义)〔表选项〕每个字段必须有数据类型最后一个字段后不能有逗号TEMPORARY临时表,会话结束时表自动消失对于字段的定义:字段名数据类型〔NOTNULLNULL〕〔DEFAULTdefaultvalue〕〔AUTOINCREMENT〕〔UNIQUE〔KEY〕〔PRIMARY〕KEY〕〔COMMENTstring〕表选项字符集CHARSETcharsetname如果表没有设定,则使用数据库字符集存储引擎ENGINEenginename表在管理数据时采用的不同的数据结构,结构不同会导致处理方式、提供的特性操作等不同常见的引擎:InnoDBMyISAMMemoryHeapBDBMergeExampleCSVMaxDBArchive不同的引擎在保存表的结构和数据时采用不同的方式MyISAM表文件含义:。frm表定义,。MYD表数据,。MYI表索引InnoDB表文件含义:。frm表定义,表空间数据和日志文件SHOWENGINES显示存储引擎的状态信息SHOWENGINE引擎名{LOGSSTATUS}显示存储引擎的日志或状态信息自增起始数AUTOINCREMENT行数数据文件目录DATADIRECTORY目录索引文件目录INDEXDIRECTORY目录表注释COMMENTstring分区选项PARTITIONBY。。。(详细见手册)查看所有表SHOWTABLES〔LIKEpattern〕SHOWTABLESFROM表名查看表机构SHOWCREATETABLE表名(信息更详细)DESC表名DESCRIBE表名EXPLAIN表名SHOWCOLUMNSFROM表名〔LIKEPATTERN〕SHOWTABLESTATUS〔FROMdbname〕〔LIKEpattern〕修改表修改表本身的选项ALTERTABLE表名表的选项eg:ALTERTABLE表名ENGINEMYISAM;对表进行重命名RENAMETABLE原表名TO新表名RENAMETABLE原表名TO库名。表名(可将表移动到另一个数据库)RENAME可以交换两个表名修改表的字段机构(13。1。2。ALTERTABLE语法)ALTERTABLE表名操作名操作名ADD〔COLUMN〕字段定义增加字段AFTER字段名表示增加在该字段名后面FIRST表示增加在第一个ADDPRIMARYKEY(字段名)创建主键ADDUNIQUE〔索引名〕(字段名)创建唯一索引ADDINDEX〔索引名〕(字段名)创建普通索引DROP〔COLUMN〕字段名删除字段MODIFY〔COLUMN〕字段名字段属性支持对字段属性进行修改,不能修改字段名(所有原有属性也需写上)CHANGE〔COLUMN〕原字段名新字段名字段属性支持对字段名修改DROPPRIMARYKEY删除主键(删除主键前需删除其AUTOINCREMENT属性)DROPINDEX索引名删除索引DROPFOREIGNKEY外键删除外键删除表DROPTABLE〔IFEXISTS〕表名。。。清空表数据TRUNCATE〔TABLE〕表名复制表结构CREATETABLE表名LIKE要复制的表名复制表结构和数据CREATETABLE表名〔AS〕SELECTFROM要复制的表名检查表是否有错误CHECKTABLEtblname〔,tblname〕。。。〔option〕。。。优化表OPTIMIZE〔LOCALNOWRITETOBINLOG〕TABLEtblname〔,tblname〕。。。修复表REPAIR〔LOCALNOWRITETOBINLOG〕TABLEtblname〔,tblname〕。。。〔QUICK〕〔EXTENDED〕〔USEFRM〕分析表ANALYZE〔LOCALNOWRITETOBINLOG〕TABLEtblname〔,tblname〕。。。
更多相关的操作基础知识点请参阅以下文章:MySQL数据库入门常用基础命令1047行MySQL详细学习笔记(值得学习与收藏)MySQL基础入门之常用命令介绍MySQL多实例配置
MySQL数据库入门多实例配置
MySQL主从同步复制复制概述
Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。
请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。mysql支持的复制类型:L默认采用基于语句的复制,效率比较高。一旦发现没法精确复制时,会自动选着基于行的复制。l5。0开始支持采用基于行的复制。复制解决的问题
MySQL复制技术有以下一些特点:数据分布(Datadistribution)负载平衡(loadbalancing)备份(Backups)高可用性和容错行Highavailabilityandfailover复制如何工作
整体上来说,复制有3个步骤:
master将改变记录到二进制日志(binarylog)中(这些记录叫做二进制日志事件,binarylogevents);slave将master的binarylogevents拷贝到它的中继日志(relaylog);slave重做中继日志中的事件,将改变反映它自己的数据。
更多相关的更深入的介绍参考:Mysql主从架构的复制原理及配置详解MySQL复制有两种方法:传统方式:基于主库的binlog将日志事件和事件位置复制到从库,从库再加以应用来达到主从同步的目的。Gtid方式:globaltransactionidentifiers是基于事务来复制数据,因此也就不依赖日志文件位置,同时又能更好的保证主从库数据一致性。MySQL数据库主从同步实战过程基于Gtid的MySQL主从同步实践MySQL主从同步架构中你不知道的坑(上)MySQL主从同步架构中你不知道的坑(下)MySQL复制有多种类型:异步复制:一个主库,一个或多个从库,数据异步同步到从库。同步复制:在MySQLCluster中特有的复制方式。半同步复制:在异步复制的基础上,确保任何一个主库上的事务在提交之前至少有一个从库已经收到该事务并日志记录下来。延迟复制:在异步复制的基础上,人为设定主库和从库的数据同步延迟时间,即保证数据延迟至少是这个参数。
MySQL主从复制延迟解决方案:高可用数据库主从复制延时的解决方案MySQL数据备份与恢复数据备份多种方式:物理备份是指通过拷贝数据库文件的方式完成备份,这种备份方式适用于数据库很大,数据重要且需要快速恢复的数据库逻辑备份是指通过备份数据库的逻辑结构(createdatabasetable语句)和数据内容(insert语句或者文本文件)的方式完成备份。这种备份方式适用于数据库不是很大,或者你需要对导出的文件做一定的修改,又或者是希望在另外的不同类型服务器上重新建立此数据库的情况通常情况下物理备份的速度要快于逻辑备份,另外物理备份的备份和恢复粒度范围为整个数据库或者是单个文件。对单表是否有恢复能力取决于存储引擎,比如在MyISAM存储引擎下每个表对应了独立的文件,可以单独恢复;但对于InnoDB存储引擎表来说,可能每个表示对应了独立的文件,也可能表使用了共享数据文件物理备份通常要求在数据库关闭的情况下执行,但如果是在数据库运行情况下执行,则要求备份期间数据库不能修改逻辑备份的速度要慢于物理备份,是因为逻辑备份需要访问数据库并将内容转化成逻辑备份需要的格式;通常输出的备份文件大小也要比物理备份大;另外逻辑备份也不包含数据库的配置文件和日志文件内容;备份和恢复的粒度可以是所有数据库,也可以是单个数据库,也可以是单个表;逻辑备份需要再数据库运行的状态下执行;它的执行工具可以是mysqldump或者是selectintooutfile两种方式生产数据库备份方案:高逼格企业级MySQL数据库备份方案MySQL数据库物理备份方式:Xtrabackup实现数据的备份与恢复MySQL定时备份:MySQL数据库定时备份的几种方式(非常全面)MySQL高可用架构设计与实战
先来了解一下MySQL高可用架构简介:浅谈MySQL集群高可用架构
MySQL高可用方案:MySQL同步复制及高可用方案总结
官方也提供一种高可用方案:官方工具MySQLRouter高可用原理与实战MHAMHA(MasterHighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,该软件由两部分组成:MHAManager(管理节点)和MHANode(数据节点。MHAManager:可以单独部署在一台独立的机器上管理多个masterslave集群,也可以部署在一台slave节点上。MHANode:行在每台MySQL服务器上。MHAManager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。
MHA高可用方案实战:MySQL集群高可用架构之MHAMGRMysqlGroupReplication(MGR)是从5。7。17版本开始发布的一个全新的高可用和高扩张的MySQL集群服务。高一致性,基于原生复制及paxos协议的组复制技术,以插件方式提供一致数据安全保证;高容错性,大多数服务正常就可继续工作,自动不同节点检测资源征用冲突,按顺序优先处理,内置动防脑裂机制;高扩展性,自动添加移除节点,并更新组信息;高灵活性,单主模式和多主模式。单主模式自动选主,所有更新操作在主进行;多主模式,所有server同时更新。MySQL数据库读写分离高可用
海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性提出很高的要求。随着时间和业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、事务数、连接数)总是有限的,最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。分表、分库和读写分离可以有效地减小单台数据库的压力。
MySQL读写分离高可用架构实战案例:
ProxySQLMysql实现数据库读写分离实战
MysqlMycat实现数据库主从同步与读写分离MySQL性能优化
史上最全的MySQL高性能优化实战总结!
MySQL索引原理:MySQL的索引是什么?怎么优化?顾名思义,Btree索引使用Btree的数据结构存储数据,不同的存储引擎以不同的方式使用BTree索引,比如MyISAM使用前缀压缩技术使得索引空间更小,而InnoDB则按照原数据格式存储,且MyISAM索引在索引中记录了对应数据的物理位置,而InnoDB则在索引中记录了对应的主键数值。BTree通常意味着所有的值都是按顺序存储,并且每个叶子页到根的距离相同。BTree索引驱使存储引擎不再通过全表扫描获取数据,而是从索引的根节点开始查找,在根节点和中间节点都存放了指向下层节点的指针,通过比较节点页的值和要查找值可以找到合适的指针进入下层子节点,直到最下层的叶子节点,最终的结果就是要么找到对应的值,要么找不到对应的值。整个Btree树的深度和表的大小直接相关。全键值匹配:和索引中的所有列都进行匹配,比如查找姓名为zhangsan,出生于198211的人匹配最左前缀:和索引中的最左边的列进行匹配,比如查找所有姓为zhang的人匹配列前缀:匹配索引最左边列的开头部分,比如查找所有以z开头的姓名的人匹配范围值:匹配索引列的范围区域值,比如查找姓在li和wang之间的人精确匹配左边列并范围匹配右边的列:比如查找所有姓为Zhang,且名字以K开头的人只访问索引的查询:查询结果完全可以通过索引获得,也叫做覆盖索引,比如查找所有姓为zhang的人的姓名MySQL常用30种SQL查询语句优化方法MySQL太慢?试试这些诊断思路和工具MySQL性能优化的9种姿势,面试再也不怕了!
MySQL表分区介绍:一文彻底搞懂MySQL分区可以允许在个表存储更多的数据,突破磁盘限制或者件系统限制。对于从表将过期或历史的数据移除在表分区很容易实现,只要将对应的分区移除即可对某些查询和修改语句来说,可以动将数据范围缩到个或个表分区上,优化语句执效率。且可以通过显示指定表分区来执语句,如selectfromtemppartition(p1,p2)wherestoreid5;表分区是将个表的数据按照定的规则平划分为不同的逻辑块,并分别进物理存储,这个规则就叫做分区函数,可以有不同的分区规则。MySQL5。7版本可以通过showplugins语句查看当前MySQL是否持表分区功能。MySQL8。0版本移除了showplugins对partition的显示,但社区版本的表分区功能是默认开启的。但当表中含有主键或唯键时,则每个被作分区函数的字段必须是表中唯键和主键的全部或部分,否则就法创建分区表。MySQL分库分表能不分就不分,1000万以内的表,不建议分片,通过合适的索引,读写分离等方式,可以很好的解决性能问题。分片数量尽量少,分片尽量均匀分布在多个DataHost上,因为一个查询SQL跨分片越多,则总体性能越差,虽然要好于所有数据在一个分片的结果,只在必要的时候进行扩容,增加分片数量。分片规则需要慎重选择,分片规则的选择,需要考虑数据的增长模式,数据的访问模式,分片关联性问题,以及分片扩容问题,最近的分片策略为范围分片,枚举分片,一致性Hash分片,这几种分片都有利于扩容。尽量不要在一个事务中的SQL跨越多个分片,分布式事务一直是个不好处理的问题。查询条件尽量优化,尽量避免Select的方式,大量数据结果集下,会消耗大量带宽和CPU资源,查询尽量避免返回大量结果集,并且尽量为频繁使用的查询语句建立索引。
数据库分库分表概述:数据库分库分表,何时分?怎样分?
Mysql分库分表方案:MySQL分库分表方案,总结的非常好!
Mysql分库分表的思路:解救DBA数据库分库分表思路及案例分析MySQL性能监控
MySQL性能监控的指标大体可以分为以下4大类:查询吞吐量查询延迟与错误客户端连接与错误缓冲池利用率
对于MySQL性能监控,官方也提供了相关的服务插件:MySQLPercona,下面简单介绍一下插件的安装〔rootdb01〕yumyinstallphpphpmysql〔rootdb01〕wgethttps:www。percona。comdownloadsperconamonitoringpluginsperconamonitoringplugins1。1。8binaryredhat7x8664perconazabbixtemplates1。1。81。noarch。rpm〔rootdb01〕rpmivhperconazabbixtemplates1。1。81。noarch。rpmwarning:perconazabbixtemplates1。1。81。noarch。rpm:HeaderV4DSASHA1Signature,keyIDcd2efd2a:NOKEYPreparing。。。〔100〕Updatinginstalling。。。1:perconazabbixtemplates1。1。81〔100〕ScriptsareinstalledtovarlibzabbixperconascriptsTemplatesareinstalledtovarlibzabbixperconatemplates
最后,可以配合其它监控工具来实现对MySQL的性能监控。
MySQL服务器配置插件:修改php脚本连接MySQL的monitorlocalhost用户修改MySQL的sock文件路径〔rootdb01〕sedi30cmysqlusermonitor;varlibzabbixperconascriptsssgetmysqlstats。php〔rootdb01〕sedi31cmysqlpass123456;varlibzabbixperconascriptsssgetmysqlstats。php〔rootdb01〕sedi33cmysqlsockettmpmysql。sock;varlibzabbixperconascriptsssgetmysqlstats。php
测试是否可用(可以从MySQL中获取到监控值)〔rootdb01〕usrbinphpqvarlibzabbixperconascriptsssgetmysqlstats。phphostlocalhostitemsgggg:12确保当前文件的属主属组是zabbix,否则zabbix监控取值错误。〔rootdb01〕llshtmplocalhostmysqlcactistats。txt4。0Krwrwr1zabbixzabbix1。3KDec517:34tmplocalhostmysqlcactistats。txt
移动zabbixagent配置文件到etczabbixzabbixagentd。d目录〔rootdb01〕mvvarlibzabbixperconatemplatesuserparameterperconamysql。confetczabbixzabbixagentd。d〔rootdb01〕systemctlrestartzabbixagent。service
导入并配置Zabbix模板与主机:
默认模板监控时间为5分钟(当前测试修改为30s)同时也要修改Zabbix模板时间如果要修改监控获取值的时间不但要在zabbix面板修改取值时间,bash脚本也要修改。〔rootdb01scripts〕sednTIMEFLMpvarlibzabbixperconascriptsgetmysqlstatswrapper。shTIMEFLMstatcYtmpHOSTmysqlcactistats。txtif〔exprTIMENOWTIMEFLMgt300〕;then这个300代表300s同时也要修改。
默认模板版本为2。0。9,无法在4。0版本使用,可以先从3。0版本导出,然后再导入4。0版本。
Zabbix自带模板监控MySQL服务
其实,在实际生产过程中,还是有相关的专业监控数据库的第三方开源软件的,民工哥之前也写过相关的文章,今天发出来供大家参考:强大的开源企业级数据库监控利器LepusMySQL管理工具
MySQL是最广泛使用和流行的开源数据库之一,围绕它有许多工具,可以让设计,创建和管理数据库的过程变得更加容易和便捷。但是如何选择最适合自己需求的工具,并不容易。这里为大家推荐:10款MySQL的GUI工具,它们对开发人员和DBA来说都是不错的解决方案。
今天,再给大家推荐一款SQL审核利器:MySQL自动化运维工具goinception。
可视化管理工具,大家可以试试这个:介绍一款免费好用的可视化数据库管理工具
俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要手段,因为,好的工具是使你的工作效率倍增!
今天和大家分享几个mysql优化的工具,你可以使用它们对你的mysql进行一个体检,生成awr报告,让你从整体上把握你的数据库的性能情况。
性能优化诊断工具:别小看这几个工具!关键时能帮你快速解决数据库瓶颈MySQL常见错误代码说明
先给大家看几个实例的错误分析与解决方案。1。ERROR2002(HY000):CantconnecttolocalMySQLserverthroughsocketdatamysqlmysql。sock
问题分析:可能是数据库没有启动或者是端口被防火墙禁止。
解决方法:启动数据库或者防火墙开放数据库监听端口。2。ERROR1045(28000):Accessdeniedforuserrootlocalhost(usingpassword:NO)
问题分析:密码不正确或者没有权限访问。
解决方法:
1)修改my。cnf主配置文件,在〔mysqld〕下添加skipgranttables,重启数据库。最后修改密码命令如下:mysqlusemysql;mysqlupdateusersetpasswordpassword(123456)whereuserroot;
再删除刚刚添加的skipgranttables参数,再重启数据库,使用新密码即可登录。
2)重新授权,命令如下:mysqlgrantallon。torootmysqlserveridentifiedby123456;3。客户端报Toomanyconnections
问题分析:连接数超出Mysql的最大连接限制。
解决方法:1、在my。cnf配置文件里面增加连接数,然后重启MySQL服务。maxconnections100002、临时修改最大连接数,重启后不生效。需要在my。cnf里面修改配置文件,下次重启生效。setGLOBALmaxconnections10000;4。Warning:Worldwritableconfigfileetcmy。cnfisignoredERROR!MySQLisrunningbutPIDfilecouldnotbefound
问题分析:MySQL的配置文件etcmy。cnf权限不对。
解决方法:chmod644etmy。cnf5。InnoDB:Error:page14178logsequencenumber29455369832InnoDB:isinthefuture!Currentsystemlogsequencenumber29455369832
问题分析:innodb数据文件损坏。
解决方法:修改my。cnf配置文件,在〔mysqld〕下添加innodbforcerecovery4,启动数据库后备份数据文件,然后去掉该参数,利用备份文件恢复数据。6。从库的SlaveIORunning为NO
问题分析:主库和从库的serverid值一样。
解决方法:修改从库的serverid的值,修改为和主库不一样,比主库低。修改完后重启,再同步即可!7。从库的SlaveIORunning为NO问题
问题分析:造成从库线程为NO的原因会有很多,主要原因是主键冲突或者主库删除或更新数据,从库找不到记录,数据被修改导致。通常状态码报错有1007、1032、1062、1452等。
解决方法一:mysqlstopslave;mysqlsetGLOBALSQLSLAVESKIPCOUNTER1;mysqlstartslave;
解决方法二:设置用户权限,设置从库只读权限setglobalreadonlytrue;8。Errorinitializingrelaylogposition:IOerrorreadingtheheaderfromthebinarylog
分析问题:从库的中继日志relaybin损坏。解决方法:手工修复,重新找到同步的binlog和pos点,然后重新同步即可。mysqlCHANGEMASTERTOMASTERLOGFILEmysqlbin。xxx,MASTERLOGPOSxxx;
维护过MySQL的运维或DBA都知道,经常会遇到的一些错误信息中有一些类似10xx的代码。ReplicateWildIgnoreTable:LastErrno:1032LastError:CouldnotexecuteUpdaterowseventontablexuanzhi。test;Cantfindrecordintest,Errorcode:1032;handlererrorHAERRKEYNOTFOUND;theeventsmasterlogmysqlbin。000004,endlogpos3704
但是,如果不深究或者之前遇到过,还真不太清楚,这些代码具体的含义是什么?这也给我们排错造成了一定的阻碍。
所以,今天民工哥就把主从同步过程中一些常见的错误代码,它的具体说明给大家整理出来了:建议收藏备查!MySQL常见错误代码说明MySQL开发规范与使用技巧命名规范1。库名、表名、字段名必须使用小写字母,并采用下划线分割。a)MySQL有配置参数lowercasetablenames,不可动态更改,Linux系统默认为0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。c)字段名显示区分大小写,但实际使用不区分,即不可以建立两个名字一样但大小写不一样的字段。d)为了统一规范,库名、表名、字段名使用小写字母。2。库名、表名、字段名禁止超过32个字符。库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符。3。使用INNODB存储引擎。INNODB引擎是MySQL5。5版本以后的默认引擘,支持事务、行级锁,有更好的数据恢复能力、更好的并发性能,同时对多核、大内存、SSD等硬件支持更好,支持数据热备份等,因此INNODB相比MyISAM有明显优势。4。库名、表名、字段名禁止使用MySQL保留字。当库名、表名、字段名等属性含有保留字时,SQL语句必须用反引号引用属性名称,这将使得SQL语句书写、SHELL脚本中变量的转义等变得非常复杂。5。禁止使用分区表。分区表对分区键有严格要求;分区表在表变大后,执行DDL、SHARDING、单表恢复等都变得更加困难。因此禁止使用分区表,并建议业务端手动SHARDING。6。建议使用UNSIGNED存储非负数值。同样的字节数,非负存储的数值范围更大。如TINYINT有符号为128127,无符号为0255。7。建议使用INTUNSIGNED存储IPV4。用UNSINGEDINT存储IP地址占用4字节,CHAR(15)则占用15字节。另外,计算机处理整数类型比字符串类型快。使用INTUNSIGNED而不是CHAR(15)来存储IPV4地址,通过MySQL函数inetntoa和inetaton来进行转化。IPv6地址目前没有转化函数,需要使用DECIMAL或两个BIGINT来存储。
例如:SELECTINETATON(209。207。224。40);3520061480SELECTINETNTOA(3520061480);209。207。224。408。强烈建议使用TINYINT来代替ENUM类型。ENUM类型在需要修改或增加枚举值时,需要在线DDL,成本较高;ENUM列值如果含有数字类型,可能会引起默认值混淆。9。使用VARBINARY存储大小写敏感的变长字符串或二进制内容。VARBINARY默认区分大小写,没有字符集概念,速度快。10。INT类型固定占用4字节存储例如INT(4)仅代表显示字符宽度为4位,不代表存储长度。数值类型括号后面的数字只是表示宽度而跟存储范围没有关系,比如INT(3)默认显示3位,空格补齐,超出时正常显示,Python、Java客户端等不具备这个功能。11。区分使用DATETIME和TIMESTAMP。存储年使用YEAR类型。存储日期使用DATE类型。存储时间(精确到秒)建议使用TIMESTAMP类型。DATETIME和TIMESTAMP都是精确到秒,优先选择TIMESTAMP,因为TIMESTAMP只有4个字节,而DATETIME8个字节。同时TIMESTAMP具有自动赋值以及自动更新的特性。注意:在5。5和之前的版本中,如果一个表中有多个timestamp列,那么最多只能有一列能具有自动更新功能。
如何使用TIMESTAMP的自动赋值属性?a)自动初始化,而且自动更新:column1TIMESTAMPDEFAULTCURRENTTIMESTAMPONUPDATECURRENTTIMESTAMPb)只是自动初始化:column1TIMESTAMPDEFAULTCURRENTTIMESTAMPc)自动更新,初始化的值为0:column1TIMESTAMPDEFAULT0ONUPDATECURRENTTIMESTAMPd)初始化的值为0:column1TIMESTAMPDEFAULT012。索引字段均定义为NOTNULL。a)对表的每一行,每个为NULL的列都需要额外的空间来标识。b)B树索引时不会存储NULL值,所以如果索引字段可以为NULL,索引效率会下降。c)建议用0、特殊值或空串代替NULL值。
详细的可参阅以下文章值得收藏:一份非常完整、详细的MySQL规范MySQL开发规范与使用技巧总结MySQL高频企业面试题
学好知识,当然就得去面试,进大厂,拿高薪。但是进入面试之前,必要的准备是必须的,刷题是其中之一。
Linux运维必会的100道MySql面试题之(一)
Linux运维必会的100道MySql面试题之(二)
Linux运维必会的100道MySql面试题之(三)
Linux运维必会的100道MySql面试题之(四)
以下内容主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水。
前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面试文章,发现其中的一些问题自己也回答不好,虽然知识点大部分都知道,但是无法将知识串联起来。
因此决定搞一个MySQL灵魂100问,试着用回答问题的方式,让自己对知识点的理解更加深入一点。
此文不会事无巨细的从select的用法开始讲解mysql,主要针对的是开发人员需要知道的一些MySQL的知识点,主要包括索引,事务,优化等方面,以在面试中高频的问句形式给出答案。MySQL高频面试题,都在这了史上最全的大厂Mysql面试题在这里MySQL数据库面试题(2021最新版)MySQL用户行为安全假设这么一个情况,你是某公司mysqlDBA,某日突然公司数据库中的所有被人为删了。尽管有数据备份,但是因服务停止而造成的损失上千万,现在公司需要查出那个做删除操作的人。但是拥有数据库操作权限的人很多,如何排查,证据又在哪?是不是觉得无能为力?mysql本身并没有操作审计的功能,那是不是意味着遇到这种情况只能自认倒霉呢?
原文链接:www。tuicool。comarticles7RNRv2z
有哪些好看的背景图呢?不请自来有哪些好看的背景图呢?哈哈,又到了发图片的时候了,最近攒积了一些在手机里,正愁没得分享的,现在就把它们都分享出来吧那么就请你往下看,看看有没有你喜欢的……
我写的Python代码,同事都说好人生苦短,我用Python。程序员的追求就是不写代码,早日财务自由。不对,一不小心把实话说出来了,应该是将代码写得简洁,优雅。Python程序员的追求则是Pytho……
蔚来新品牌的业务工作进展顺利未来加大自动驾驶等领域研发【蔚来:新品牌的业务工作进展顺利未来加大自动驾驶等领域研发】《科创板日报》25日讯,在2021年Q4财报会议上,蔚来方面表示,位于合肥新桥智能汽车产业园区的第二生产基地的厂房建……
当暴风雨来临时作文导语:乌云笼罩了天空,天空阴沉沉的,几乎什么也看不见。看来,暴风雨要来了。下面由小编为大家整理的当暴风雨来临时作文,希望可以帮助到大家!当暴风雨来临时作文(一)人的一生很……
玫瑰花的葬礼(六)今天早上,小静穿着朔送她的那条公主裙,神采飞扬的来到学校。朔在学校门口碰到了小静,ldquo;嗨!女神,你穿这裙子真漂亮啊。昨天在我的生日party玩的怎么样啊?rdquo;l……
校园四季小学作文我是二马路小学的学生,我们的校园一年四季都很美。春天,校园中操场上的积雪融化了,小草从土壤中探出头来,树木也抽出了新的枝条,一群群大雁也从南方飞回来,在天空中欢快的叫着,……
关于一件有趣的事作文4篇我的脑海里总是有许多的趣事。他们像繁星一样闪烁着,使我的生活变得丰富多彩。但令我最难忘的事是去年我在老家挖红薯。下面是小编为大家整理的关于一件有趣的事作文,仅供参考,欢迎大家阅……
关于2019元宵节作文正月十五看烟花今天是正月十五,局办公大楼前要放烟花了。吃完晚饭,我就迫不及待地和爸爸妈妈一起来到了办公楼门前,这里人山人海,似乎全油田的人都来到了这里。只听见lsquo;砰rsquo;……
关于感恩老师的书信心怀感恩让人少丝怨恨,心怀感恩让生活多些灿烂,心怀感恩让人生更添魅力。下面就是小编整理的关于感恩老师的书信,一起来看一下吧。篇一:感恩老师的信敬爱的老师:您好!……
南海问题的现状分析及其应对策略2000字中国对南沙群岛及其附近海域拥有无可争辩的主权。但近年来东南亚几国对南沙各岛屿问题的争议成为南海问题的焦点,中国主权问题受到严重的损害。下面是小编给大家整理的有关南海问题的现状分……
工业富联服务器销量再领先年赚超200亿拟分红百亿再掏476亿长江商报消息长江商报记者沈右荣助力智能制造和工业互联网,工业富联(601138。SH)经营业绩再创新高。3月22日晚间,工业富联披露的年报显示,2021年,公司实现……
我期待的寒假作文600字在学生眼里,寒假是一年中最快乐的假期,它似树叶,轻轻一飘就拂袖而去了,它又似小溪,一眨眼就流过去了,在这短暂的日子里,我有过惊涛骇浪,也有过风平浪静,比如说,大年初一放1000……
故宫长城游记盛大的比赛后,神经绷得紧紧的我全身都松懈下来了。经过我和妈妈周密的计划后,决定去长城的八达岭和历史悠久的故宫。事不宜迟,我们坐上了大巴向崇山峻岭之中的八达岭进发了。……
汽车板块连续两天大涨,新能源汽车市场迎来长期布局机会4月14日,沪指高开0。53,深成指高开0。82,创业板指高开1。15,汽车整车涨幅居前。截至中午收盘,三大指数早盘分化,汽车整车板块涨幅2。83。港股方面,14日上午三……
成功的背后是胜利小学六年级作文骑车是很平常的事,但是在街上骑车的哥哥姐姐们骑车时手不用握住车前的方向盘!这就叫做大撒把。我对这很感兴趣!咦?那是谁在用大撒把自由自在的骑着车子向我骑来。近处一瞧,原来是二姑家……
无声的艺术作文上海植物园举办盆景展览,我慕名而去。走进展览大厅,那各式各样的盆景简直使人目不暇接。不必说墨绿的罗汉松被修剪得多彩多姿,也不必说青翠的爬山虎缠绕着山石盘旋而上,单说山水盆景就使……
关于书的作文倒霉的早上星期五早上,袁小闹吹着口哨早早就从家中出来去上学,可不是吗,今天是这个星期的最后一天。一想到明天就可以休息了,袁小闹的心情就像调了蜜了,可甜了。咦!今天的书包怎么变得比以……
给网络监管部门的建议书敬爱的网络监管部门的叔叔阿姨:你们好!我是一名来自广东省广州市的小学生,感谢你们能在百忙中看我的信。毋庸置疑,网络是21世纪人类一项伟大的发明,给我们的生活带来方便……
巴蜀文化数藏平台灵兽宇宙发布首件数字藏品,九寨天鹅湖上线3分四川在线记者吴梦琳4月22日,专注于巴蜀文化的数字藏品平台灵兽宇宙对外发布首件数字藏品,将国家一级美术大师、四川画家周光汉创作的世界自然文化遗产系列之《九寨天鹅湖》进行数……
奇怪的天气小学生作文300字在现实生活或工作学习中,大家对作文都再熟悉不过了吧,写作文是培养人们的观察力、联想力、想象力、思考力和记忆力的重要手段。一篇什么样的作文才能称之为优秀作文呢?以下是小编帮大家整……
过年的五年级作文400字大年三十这一天,妈妈、奶奶都忙着做团圆饭,我和弟弟也没闲着,正帮着爷爷贴春联呢,爷爷高兴地说:你们俩真懂事!我和弟弟听了别提多高兴了!吃饭了。随着妈妈的呼喊声,我们立即跑……
我是小书虫五年级作文我特别喜欢看书,是班里公认的书迷,因此被同学起了书虫的绰号,就连爸爸妈妈也叫我书虫。有一天,我想上厕所,就偷偷地溜到书柜里,找了一本书,锁上厕所的门,坐在马桶里津津有味地……
从你的全世界路过影评电影感受《从你的全世界路过》由ldquo;微博上最会讲故事的人rdquo;张嘉佳编剧国内一线明星阵容邓超、白百何、杨洋、张天爱、岳云鹏、杜鹃、柳岩主演。从三对都市男女的爱情故事中揭开你……
调整自己作文窗外,滴滴答答的雨水频频叩打我的玻璃窗,像是不会停止一般地循环着。我扔下手中的电子产品,流星跨步,扯住窗帘一拉,凄厉而刺耳的声响,让人心烦。无意间瞥见堆满灰尘的窗台上停留着一片……