摘要:使用MySQL时,一般会使用可视化工具管理数据库,方便开发提升效率。身边使用Navicat的人居多,Navicat有人家收费的理由,用着确实顺手,界面简单不复杂,上手容易,破解版不知道哪些个公司的安装包,用着着实不放心,遂下载了MySQL官方的Workbench,本文会持续更新一些Workbench的用法,也会穿插一些MySQL5.7的新特性。

MySQL Workbench

安装使用

  MySQL Workbench为数据库架构师,开发人员和DBA提供统一的可视化工具。MySQL Workbench为服务器配置,用户管理,备份等提供了数据建模,SQL开发以及全面的管理工具。
  官方下载地址 64位 32位
  安装完成后launch it,进入首页面。

  选择数据库实例(Local instance MySQL),双击进行登录,需要输入密码。

  新建一个数据库test。

  Create 数据库表,填写Table Name,Comments之后点击向上的箭头,填写Column信息。

  添加列信息的过程中,发现一个没使用过的字段选项 Generated Column。表建好之后,鼠标轻放在table上,会出现三个icon,我们能够去查看表的相关信息,分析表和创建表的索引,以及去编辑表,修改表结构。

  接下来给user表中添加数据,MySQL基础语法不再赘述。

  闪电icon执行SQL语句,1处,执行SQL脚本的选定部分,如果没有选定,则执行窗口的所有SQL语句;2处,执行光标所在的SQL语句;3处,SQL语句性能分析时使用,EXPLAIN执行计划使用执行查询;4处,是否在执行失败的语句后继续执行SQL脚本;5处,是否开启事务自动提交模式;6处,格式化SQL。执行SQL也可以点击最上菜单栏的Query菜单项。

消除MySQL Workbench SQL编辑窗口的小红叉

  明明没有语法错误,SQL编辑器却出现小红叉,强迫症的同学肯定受不了。(问题发现还没彻底解决,Beautify/reformat the SQL script用起来时好时坏,重启倒是挺好用,太low)

设置显示mysql和information_schema数据库

  我们平时在开发中会用到information_schema数据库和mysql数据库,默认SCHEMAS栏是没有显示的,需要设置让其显示。Edit->Preferences->SQL Editor,Sidebar中勾选Show Metadata and Internal Schemas。

数据导入导出

  Export

  Import

Reverse Engineer逆向工程

  数据库逆向工程说白了就是根据现有数据库结构建立数学模型,菜单栏Database->Reverse Engineer…

  设置DBMS Connect参数。

  Connect信息,Show Logs按钮可查看日志。

  选择需要执行反向工程的数据库,这里选择测试数据库student。

  检索相关信息,Show Logs按钮查看详情。

  选择数据库中参与建模的表,之后一路Execute->Next->Finish,建模完成。

  双击E-R图中实体,在弹出的对话框能够对表进行编辑。

  将E-R图保存为PNG、SVG、PDF、SQL文件等,很方便,菜单栏File->Export->…

MySQL 5.7

Generated Column

  MySQL5.7引入了Generated Column,顾名思义,就是引用其他列值生成的列。
  语法:<type> [ GENERATED ALWAYS ] AS ( <expression> ) [ VIRTUAL|STORED ]
[ UNIQUE [KEY] ] [ [PRIMARY] KEY ] [ NOT NULL ] [ COMMENT <text> ],MySQL5.7支持两种Generated Columns,Virtual Generated Column(默认) 和Stored Generated Column。前者的列值是在每次从表中读取记录时计算所得,不持久化在数据库中,Stored Generated Column则在表中写入新记录时计算列,之后将作为常规字段处理。这两种类型都可以有NOT NULL限制,但只有Stored Generated Column生成列可以作为索引的一部分。
  Generated Column使用时的一些限制:

  • generation expression只能调用native deterministic functions(MySQL内建函数),stored routines(存储过程?)和UDF(用户自定义函数)尚不支持
  • 受.frm文件的限制, generation expression的总长度不能超过64K。因此,可以有一个字段的generation expression长度为64K,或者有30个字段,每个的generation expression的平均长度为2K
  • Generated Column不能引用自身或稍后定义的其他Generated Column,但它可以引用任何以前定义的Generated Column。这个限制对于常规列不适用,Generated Column可以引用任何常规列,无论它在何时定义

    mysql> CREATE TABLE sales ( -> name VARCHAR(20),  -> price_eur DOUBLE,-> amount INT,-> total_eur DOUBLE AS (price_eur * amount),-> total_usd DOUBLE AS (total_eur * xrate),-> xrate DOUBLE);
    

  total_eur(Virtual Generated Column)列值由price_eur(常规列)*amount(常规列)表达式计算所得。

mysql_install_db

  mysql_install_db,MySQL 5.7.6之后开始已弃用,功能已经集成到mysqld。mysql_install_db初始化MySQL数据目录并创建system tables(如果不存在),以及初始化管理InnoDB表的系统表空间和相关数据结构。 语法:mysql_install_db [options]
  从MySQL 5.6.8开始,mysql_install_db是Perl脚本,可以在任何安装了Perl的系统上使用,之前是shell脚本,仅在Unix平台上可用。MySQL 5.7.5之后,mysql_install_db使用C ++编写,并在binary distributions中应用。 此外,又添加了多个新选项,删除了部分旧选项,如果发现某个选项不能正常工作,检查哪些选项适用于你的当前mysql_install_db版本。
  默认情况下,MySQL 5.7.5及更高版本是安全的,具有以下特性:

  • 名为“root”@’localhost’的单个管理帐户使用随机生成的密码创建,并标记为已过期
  • 不会创建匿名帐户
  • 不会创建所有用户都可访问的测试数据库
  • –admin-xxx选项可用于控制管理帐户的特性
  • –random-password-file选项可用于控制随机密码的写入位置。
  • –insecure选项可用于禁止随机密码生成

mysqld_safe

  ./mysqld_safe是在Unix上启动mysqld服务器的推荐方法。 mysqld_safe添加了一些安全功能,如在发生错误时重新启动服务器,并将运行时信息记录到错误日志文件。从MySQL 5.7.6开始,对于使用RPM分布式安装的MySQL,服务器startup、shutdown由Linux平台上的systemd工具管理,因此在这些平台上,不再安装mysqld_safe。

mysql_upgrade

  检查所有数据库中所有表与当前MySQL版本的兼容性。 mysql_upgrade还会升级系统表,以利用可能添加的新特权或功能。语法: mysql_upgrade [options]

innodb_force_recovery

  强制启动InnoDB存储引擎,同时防止后台操作运行,以便转储tables。紧急状况下,将innodb_force_recovery设置为大于0的值,便可以启动InnoDB并转储表, 在执行此操作之前,请确已进行了数据库备份,以便在需要重新创建数据库时使用。
  innodb_force_recovery默认为0(正常启动),所允许的非零值为1到6,较大的值包括较小值的functionality。 例如,值3包括值1和2的所有functionality。

  • 1 (SRV_FORCE_IGNORE_CORRUPT)
      即使检测到损坏页面,服务器继续运行。 尝试使SELECT * FROM tbl_name跳过损坏的索引记录和页面,有助于转储表。
  • 2 (SRV_FORCE_NO_BACKGROUND)
      阻止主线程和任何purge线程运行。 如果在purge操作期间发生崩溃,则此恢复值会阻止它运行。
  • 3 (SRV_FORCE_NO_TRX_UNDO)
      不执行事务回滚。
  • 4 (SRV_FORCE_NO_IBUF_MERGE)
      阻止插入缓冲区的合并操作,不计算表统计信息。 此操作可能永久损坏数据文件,设置SRV_FORCE_NO_IBUF_MERGE后,将删除并重新创建所有二级索引。 从MySQL 5.7.3开始,此操作设置InnoDB为只读。
  • 5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
      启动时不查看undo logs,,此操作可能永久损坏数据文件,设置SRV_FORCE_NO_UNDO_LOG_SCAN后,InnoDB甚至将不完整的事务处理为已提交。 从MySQL 5.7.3开始,此操作设置InnoDB为只读。
  • 6 (SRV_FORCE_NO_LOG_REDO)
      数据库恢复时不执行redo log前滚,此操作可能永久损坏数据文件,使数据库页面处于历史状态,反过来可能将更多的损坏引入B树和其他数据库结构。 从MySQL 5.7.3,此操作设置InnoDB为只读。

参考:
Generated Columns in MySQL 5.7.5
MySQL Workbench使用手册
MySQL 5.7 Reference Manual

MySQL 5.7以及MySQL Workbench使用相关推荐

  1. mac安装mysql workbench_MAC上安装mysql及workbench

    下载mysql for mac    https://dev.mysql.com/downloads/installer/ 官网下载很慢---百度云:链接: https://pan.baidu.com ...

  2. MySQL基础:使用MySQL Workbench生成ER图

    这篇文章介绍一下如何使用MySQL Workbench生成ER图. 事前准备 MySQL: 8.0.11 liumiaocn:~ liumiao$ mysql.server start Startin ...

  3. mysql视频教程siki_siki老师MySQL数据库从零到精通,资源教程下载

    课程名称 siki老师MySQL数据库从零到精通,资源教程下载 课程目录 01-什么是数据库 学习方法介绍 02-各种数据库的比较和关系型数据库的介绍 03-服务器端运行通信原理图 04-游戏服务器端 ...

  4. MYSQL(3)---MySQL的基本概念介绍

    MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格 ...

  5. mysql中member_在MySql中实现MemberShip的权限管理

    步骤: 1.在MySql种创建一个数据库,名称任意取,我们只是要得到一个空的数据库,我们假设这个数据库的名称为authentication. 2.在VS种创建一个Web应用程序,File--new-- ...

  6. 白白速学MySQL基础知识-安装MySQL

    前导: 昨天去参加了一个面试,公司不太大,是一家日资企业,在国内有几家分公司,面试官问到了MySQL的基本操作和性能优化,说了一大堆,倒是比较轻松的过了,但是面试结束之后,想了一下,基本操作忘的还是挺 ...

  7. 一天一篇mysql之一:认识mysql

    mySQL(关系型数据库管理系统) MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB ...

  8. MySQL新手入门:MySQL数据库的启动与连接

    上一篇文章,讲解了MySQL数据库的安装,本文将会讲解MySQL数据库的启动及连接. MySQL数据库安装完成后,其实已经是启动状态了,但是,有时候修改了MySQL的配置文件(my.ini),需要重新 ...

  9. linux mysql开远程访问,Linux mysql开启远程访问

    默认情况下远程访问会出现 Can't connect to MySQL server on '192.168.10.18′ (10061) 错误 是因为,mysql的默认配置为了增强安全性,禁止了非本 ...

最新文章

  1. Echarts 自定义数据视图
  2. 安卓设备刷linux发行版,绝对精华,大牛教你在Android系统上安装linux发行版
  3. git仓库的推送问题
  4. asp单元格合并后宽度没有合并_宅在家里跟着大牛从零开始学excel第五课-合并,边框,列宽行高...
  5. java 调用groovy_Java调用Groovy脚本
  6. PHP文件操作---文件file
  7. clover java,clover-clover软件 v3.4.3 官方版
  8. Nginx upstream性能优化
  9. linux工程常用的应用命令总结:
  10. Vue组件动态(异步)传值
  11. python怎么画简单图片-只需 45 秒,Python 给故宫画一组手绘图!
  12. hadoop学习笔记之-NFS配置
  13. matlab蒙特卡洛模拟几何布朗,【数值模拟】几何布朗运动数值解的模拟
  14. java阴阳师抽卡算法_阴阳师抽卡小技巧,抽出SSR很轻松
  15. uefi与win8 (根据网络资料整理)
  16. 透过案例看清API接口的作用——演示1688商品详情接口
  17. JAVA 调用地图API
  18. 华科尔d10设置教程_华科尔D10刷Deviation设置参数求教
  19. 法国计算机与电信工程师学院,如何选择法国工程师学院?
  20. TopCoder SRM 577 Div2 1000 EllysCoprimesDiv2

热门文章

  1. 毕达哥拉斯之谜(4)
  2. dell计算机运行慢怎么解决方法,Win8戴尔笔记本电脑运行速度慢的解决方法
  3. 【GT的PaddleOCR指南】paddleOCR热(meng)门(bi)Top10
  4. 坚定修谱的4大原则!专家:缺少一个都可能祖先蒙羞后人丢脸
  5. 【Excel】差旅费补助金额计算
  6. 统信UOS专业版安装SecureCRT
  7. 一石二鸟:推荐算法多目标建模技巧
  8. Google 最新的性能优化方案,LCP 提升30%!
  9. 真三国无双战服务器维护,《真三国无双霸》怎么进不去服务器 进不去怎么解决...
  10. 这回又来个 ionic2 的微信支付 (遇到一些莫名的BUG)