接上一篇:Linux运维必会的100道MySql面试题(二)001:请解释一下关系型数据库的概念和主要特点?关系数据库模型将复杂的数据结构归结为简单的二元关系,对数据的操作都是建立一个或多个关系表。表的最大特点是二维表,通过SQL结构化查询语句访问数据。保持数据一致性的能力很强002:请介绍一下关系型数据库的典型产品、特点和应用场景?mysql互联网公司常用的oracle数据备份、复杂连接查询、一致性数据存储等大型传统企业应用软件,还是用MySQL或其他传统关系型数据库最合适003:请说明概念和主要非关系型数据库的特点?非关系数据库也称为NoSQL数据库。数据存储不需要有唯一的固定表结构。特点:高性能、高并发、安装方便。004:请介绍一下非关系型数据库的典型产品、特点和应用场景?memcaced纯内存redis持久缓存mongodb面向文档如果您需要短期响应查询操作,没有良好schema定义的数据存储,或者schema变化频繁的数据存储,使用NoSQL005:请详细描述SQL语句分类和对应的代表关键字sql语句分类如下DDL数据定义语言,用于定义数据库对象:library,table,column代表关键字:createalterdropDML数据操作语言,用于定义数据库记录代表关键字:insertdeleteupdateDCL数据控制语言,使用定义访问权限和安全级别代表关键字:grantdenyrevokeDQL数据查询语言,用于查询记录数据代表关键字:select006:请详细描述char(4)和varchar(4)的区别。char长度是固定的Immutable,varchar的长度是可变的(在设置范围内)。比如也写cn字符,那么char类型对应的长度是4(cn+两个空格),但是varchar类型对应的长度是2007:如何创建一个utf8字符集数据库mingongge?createdatabasemingonggedefaultcharacterutf8collat??eutf8_general_ci;008:如何授权mingongge用户从172.16.1.0/24grantallon访问数据库。以mingongge@'172.16.1.0/24'身份fiedby'123456';009:什么是MySQL多实例以及如何配置MySQL多实例?Mysql多实例就是在同一台服务器上启用多个mysql服务。它们监听不同的端口,并相互独立地运行多个服务进程。提供相互独立的服务,便于节省服务器资源和扩展后期架构。多实例有两种配置方式:1、一个实例一个配置文件,端口不同2、不同实例在同一个配置文件(my.cnf)下配置。基于mysqld_multi工具的具体配置,请参考之前的文章010:如何加强MySQL的安全性,请给出可行的具体措施?1.删??除数据库不使用的默认用户。2、配置相应的权限(包括远程连接)3、不要使用命令在线路界面输入数据库的密码4、定期修改密码,加强密码的复杂度011:如何找回MySQLroot密码忘了吧?mysqld_safe--skip-grant-tables启动数据库服务mysql-uroot-ppassowrd-e"usemysql;updateusersetpassword=PASSWORD('newpassword')whereuser='root';flushprivileges;"012:删除和截断和删除数据有什么区别?前者删除数据可以恢复,一条一条删除慢,后者物理删除,不可恢复,整体删除更快013:如何解决MySQLSleep线程过多的问题?1.可以杀掉sleep进程,杀掉PID2,修改配置,重启服务[mysqld]wait_timeout=600interactive_timeout=30如果生产服务器不能随便重启,可以用下面的方法解决setglobalwait_timeout=600setglobalinteractive_timeout=30;014:sort_buffer_size参数的作用?在线修改如何生效?需要在每个连接(session)第一次连接时使用,提高访问性能setglobalsort_buffer_size=2M015:如何正确在线清理MySQLbinlog?MySQL中的binlog日志记录了数据中的数据变化,便于数据的分时分地恢复,但是日志文件的体积会越来越大,大量磁盘占用用过的。磁盘空间大,所以需要定期清理一些日志信息手动删除:先查看主从库正在使用的binlog文件名showmaster(slave)status\G之前一定要备份purgemasterlogs'2017-09-0100:00:00';#Deletethelogsbeforethespecifiedtimepurgemasterlogsto'mysql-bin.000001';#Deletethespecifiedlogfilestoautomaticallydelete:通过设置binlog过期时间让系统自动删除日志showvariableslike'expire_logs_days';设置全局expire_logs_days=30;#查看过期时间和设置过期时间016:Binlog有哪些工作模式?各有什么特点,企业如何选择?1.Row(行模式)log会记录每一行数据的修改形式,然后在slave端修改相同的数据。2.Statement(语句模式)每条修改的数据都会完整的记录在主数据库中master的binlog中,在master上执行的sql语句完全在slave上执行。3.mixed(混合模式)结合了前面两种模式。如果工作中有函数或者触发器等特殊功能需求,使用混合模式,当数据量达到比较高的时候,会选择statement模式,而不是RowLevel行模式。017:一条droplibrarySQL语句被误执行,如何完全恢复?1.停止主从复制,在master库上锁表并刷新binlog操作,然后恢复之前的全量备份文件(比如0点的全量备份)2.合并0点的binlog文件全量备份到故障期间的binlog文件将binlog文件合并导出成sql语句mysqlbinlog--no-defaultsmysql-bin.000011mysql-bin.000012>bin.sql3。删除导出的sql语句中的drop语句,恢复到数据库mysql-uroot-pmysql123
