您的位置:

mysql数据库sys(mysql数据库备份)

本文目录一览:

请简要简述MySQL的四大系统数据库及其作用?

MySQL 自带了四个数据库,如下:

mysql库。是MySQL的核心数据库,存储用户、权限等信息

information_schema。存储表、锁等性能信息。元数据关于数据的数据,如数据库名,表名,访问权限,库表的数据类型,库索引的信息等

sys。这个库数据来源于performance_schema。目标是把performance_schema的复杂程度降低,让DBA能更好的阅读这个库里的内容,让DBA更快的了解DB的运行情况。

performance_schema。这个库主要收集数据库服务器性能参数,用于监控服务器在一个较低级别的过程中的资源消耗,资源等待等情况

Mysql数据库中哪几个默认数据库是不能删的?

information_schema,mysql,performance_schema,sys这四个数据库是MySQL自带的数据库,不能轻易删除,其他自建的数据库可以按需删减。

如何使用mysqldump命令备份mysql数据库

通用规律只有使用 --all-databases (-A) 会 ERROR 1356,那就看看他到底备份了什么东西。于是喊上同事一起 less 看了下,上下扫了两眼。突然发现:1. 备份 SQL 文件里 DROP 掉了 mysql.proc;2. 后CREATE了一个新的 mysql.proc;3. LOCK TABLES 和 UNLOCK TABLES 中间居然没有备份 CREATE ROUTINE 任何数据?这不就是相当于每次导入全备都给我一个没有任何 sys schema routines 的全新 mysql.proc 表?那这不就异常的尴尬?

---- Table structure for table `proc`--

---- Dumping data for table `proc`-

真相大白在官方文档【sys-schema-usage】官方文档明确的告诉我们不会备份 sys 库。但在使用 mysqldump 在执行 --all-databases 会清空 mysql.proc 导致 sys 无法正常使用;这是一个 BUG,并且只存在于 MySQL 5.7.x !

1、mysql_upgrade install or upgrade sys schema

这个方案适用于 sys 库已经因为 mysqldump 导入而损坏的情况下使用。

注意:mysql_upgrade 在修理 sys 库的同时,还修理 mysql 库和用户库表(期间加锁且速度一般),有极小可能会误伤;使用 mysql_upgrade 的时候要加上 --upgrade-system-tables,不然会扫描用户库表。

2、全备时同时备份 sys 库

这个方案适用于需要还原的数据库,sys 库也不太正常的情况下使用;在全备后额外再备份一份 sys 库用于修复。

注意:不适用于做主从时使用它。

3、使用 databases 全备

这个方案适用于所有场景的全备需求,100% 安全。

4、使用 mysql-sys 开源代码

如果你的数据库 sys 全部中招了,又是生产库。那你只能用这个方法;

mysql-sys:

中记录了 sys 库的创建语句将文件下载到本地,然后根据数据库版本,执行以下命令即可。

mysql 自带的sys表是做什么的,可以删掉吗?

不可以的,这个是对整个数据库的相关配置存放的表,删除掉mysql立即瘫痪