MySQL工作台是一个图形应用程序,它使我们可以管理数据并在MySQL数据库上执行管理任务。在本教程中,我们将看到如何在Ubuntu 18.04(Bionic Beaver)上安装该程序,并且我们将对其最基本的功能进行简要介绍,以使您能够Linux系统管理工作更轻松。
在本教程中,您将学习:
- 如何安装和配置MySQL工作台
- 如何通过MySQL工作台创建模式和表
- 如何通过reverse-engineering创建现有架构的E.R图
- 如何执行SQL查询
使用的软件要求和约定
类别 | 要求,约定或使用的软件版本 |
---|---|
系统 | Ubuntu和许多Debian衍生产品,例如Linux Mint。 |
软件 | Mysql-server和Mysql-workbench |
其他 | 以root身份或通过root特权访问Linux系统sudo 命令和活动MySQL服务器 |
约定 | #-要求给出linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo 命令$-要求给出linux命令以普通非特权用户身份执行 |
设置MySQL服务器
正如我们已经说过的MySQL workbench
是MySQL的图形应用程序。要测试其功能,我们需要连接到正常工作MySQL
服务器。为了本教程的目的,我们将简要地介绍如何在Ubuntu 18.04 Bionic Beaver上安装后者。如果您已经可以访问数据库服务器,则可以跳过本部分。要在Ubuntu 18.04上安装MySQL,我们要做的就是运行以下命令:
$ sudo apt-get update && sudo apt-get install mysql-server
的apt
软件包管理器将要求我们确认我们要安装软件包及其所有依赖项。安装过程完成后,mysql
服务将由systemd
并设置为在启动时自动启动。要测试该服务是否处于活动状态,我们可以运行:
$ systemctl is-active mysql
active
在这种情况下,命令的输出为'active'
,表示该服务正在按预期运行。我们可以使用类似的命令来验证该服务是否enabled
开机时:
$ systemctl is-enabled mysql
enabled
现在我们有了MySQL的工作实例,我们想运行secure_installation_scripts
,让我们执行服务器的交互式初始配置:
$ sudo mysql_secure_installation
如果此时我们尝试从mysql console
与root
用户凭据,我们收到一个错误:
$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
发生错误是因为MySQL version 5.7
,如果在安装过程中未提供root密码,则auth_socket
插件用于验证root用户。使用此插件,MySQL只会忽略我们为用户提供的密码(在本例中为root),而只是检查用户是否通过进行连接UNIX socket
和用户名匹配。要更改此类设置,我们必须首先使用以下命令登录:
$ sudo mysql
登录后,将身份验证方法更改为mysql_native_password
并设置本地根密码,我们必须执行以下查询:
mysql > ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'our_super_secret_password';
mysql > FLUSH PRIVILEGES;
如果现在退出 shell 程序并尝试使用我们刚刚设置的密码登录,则不会出现任何错误:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.27-0ubuntu0.18.04.1 (Ubuntu)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
现在,我们应该在系统上运行一个已配置的MySQL数据库,并且我们可以继续安装和探索MySQL工作台程序及其功能。
安装和连接设置
在Ubuntu 18.04上安装MySQL工作台再简单不过了:该软件包已包含在Ubuntu官方存储库中,因此我们可以使用分发软件包管理器进行安装。包裹的实际名称是mysql-workbench.
要安装它,我们要做的就是运行以下命令:
$ sudo apt-get install mysql-workbench
要启动该程序,我们要做的就是打开Ubuntu应用程序抽屉,然后单击MySQL Workbench启动器图标:
该程序将启动,并显示主页:
如我们所见,现有本地连接会自动显示在连接列表中,如下所示:Local instance
。我们将使用它来测试应用程序。在继续进行之前,让我们看看如何创建或修改现有连接。
创建一个新的连接
我们可以通过多种方式创建新连接,最直接的方法是单击主应用程序窗口中的”plus”按钮。完成后,将打开一个新窗口:我们可以使用它来设置连接设置。
首先要做的是设置Connection Name
,在这种情况下,我们将只使用”test”。我们必须做的第二件事是选择Connection Method
。在这种情况下,我们将使用默认选项:Standard (TCP/IP)
。接下来,我们必须设置基本的连接参数:hostname
(名称或IP地址)运行MySQL服务器的计算机,以及port
用于连接,默认情况下为3306
。
我们还必须提供MySQL的名称user
我们应该使用以及其密码。我们可以选择将密码存储在系统中keychain
或通过单击”Clear”按钮清除已存储的密码。如果未在此处设置密码,则在使用连接时,应用程序将提示我们提供密码。
最后,我们可以设置Default Schema
当我们连接到服务器时使用。如果我们将此字段留空,则稍后可以从可用字段列表中选择它。
要测试连接,我们可以单击Test Connection
按钮;存储我们刚刚创建的连接,相反,我们单击OK
一。现在,该连接应出现在主程序页面的列表中。
修改连接
修改连接同样简单。我们只将right-click添加到现有连接名称上,然后选择Edit Connection
从出现的上下文菜单中。
完成后,将打开用于创建连接的同一窗口,让我们执行所需的更改。
删除连接
要删除现有连接,我们使用类似的过程:在主应用程序窗口中,专用于连接的部分上为right-click,但这一次我们选择Delete Connection
从上下文菜单中。在实际删除连接之前,应用程序将要求确认:
使用工作台
要使用工作台,我们必须使用可用连接之一连接到正在运行的MySQL服务器。如前所述,在本例中,应用程序自动为本地运行的服务器创建了一个连接。我们只需在主应用程序页面上单击专用的”box”即可使用它。由于我们没有为连接设置密码,因此将提示您提供该密码:
如果连接成功,将打开一个新选项卡:
如我们所见,在主工具栏中,我们有一系列图标,可让我们访问某些功能。除其他外,我们可以:
- 打开一个新选项卡以执行SQL查询(窗口中央已经打开了一个);
- 在新的查询选项卡中打开现有的SQL脚本;
- 创建一个新的模式;
- 在选定的架构中创建一个新表;
- 创建一个新的视图;
- 创建一个新程序;
- 创建一个新功能。
在窗口的左侧部分中,我们有一个垂直菜单,分为四个主要部分:
- 管理
- 实例
- 性能
- 模式
在第一部分中Management
,我们可以点击 Server Status
检查服务器的整体状态,接收有关服务器的常规信息,例如可用功能,目录等。仍然在此部分中,我们可以访问页面来管理server users
及其权限,例如,我们可以从服务器导入或导出数据,以创建模式备份。
在里面Instance
部分,我们可以关闭或启动服务器,检查日志和配置文件。在里面Performance
除其他事项外,我们可以访问Dashboard
,我们可以在其中获取有关传出和传入服务器流量,已执行的SQL语句数量等的状态报告。
终于在Schemas
部分中,我们列出了数据库中所有现有模式,并且可以对其进行操作。
一个简单的用例:创建模式
创建模式是我们可以从MySQL工作台应用程序执行的最基本的操作之一。首先,我们单击应用程序工具栏中的第四个图标。将打开一个新标签页;在其中,我们将插入模式名称及其默认排序规则。假设我们要创建一个名为”book_store”的架构并使用utf8_general_ci
作为整理:
完成后,我们必须点击Apply
按钮。将出现一个弹出窗口,其中包含将用于创建模式的SQL查询的描述,以便我们对其进行检查:
再次单击”Apply”按钮后,将执行查询。现在,新创建的架构将显示在Schemas
左列菜单的“部分”。如果我们右键单击列表中的模式名称,将显示一个上下文菜单。通过它,我们可以访问用于修改,删除,打开或检查模式本身的选项。
我们的架构目前为空。在本教程中,我们将在其中创建两个表:第一个表包含有关书作者的数据,第二个表包含有关书名的数据,并通过外键链接到第一个表。我们开始做吧。
建立表格
创建表与创建模式一样容易。首先我们double click
我们要在其中创建表的模式名称上的默认名称将被使用(或者,我们可以右键单击模式名称,然后在上下文菜单中单击“设置为默认模式”)。之后,我们单击工具栏中的第五个图标,这使我们可以创建一个新表。
在出现的选项卡中,我们可以以图形方式创建一个新表。首先要提供的是table name
。默认情况下,将创建一个名为”idnew_table”的新列:我们只需要对其进行修改。我们可以设置列Datatype
,然后使用复选框设置列属性,例如,PK
(首要的关键),NN
(非空),AI
(AUTO_INCREMENT)等
首先,我们将创建”author”表。该表将由三列组成:
- ID(它将是主键)
- 名称
- 生日
对安装感到满意后,我们可以单击”Apply”按钮。就像我们创建模式时一样,将打开一个弹出窗口,向我们显示将要执行的SQL查询。只需再次单击”Apply”即可使更改生效。
我们将创建的第二个表将包含有关书名的数据。我们将其命名为”title”:
我们的表已经设置好了,现在我们必须添加foreign key
这将建立”title”和”author”表之间的关系。涉及的列是标题表中的”author_id”列和作者表中的”id”列。
为此,我们打开页面底部的”Foreign Keys”选项卡,并提供外键名称和引用表。然后,我们选择该列和引用的列。在外键选项部分中,我们可以选择”On Update”和”On Delete”操作,还可以添加注释。
再一次,当我们准备就绪时,我们单击”Apply”按钮以在实际执行SQL查询之前对其进行检查:
创建实体关系模型
至此,我们有了一个由两个表填充的模式,该表由外键链接。 MySQL工作台的另一个非常有用的功能是从现有数据库架构中创建图表。这是通过几个简单的步骤就能获得模式及其表之间关系的图形表示的方式。
首先我们点击主菜单Database -> Reverse Engineer
(我们也可以使用Ctrl-R快捷方式)。这将打开一个连接向导。在向导的第一页中,将提示我们在现有连接之一之间进行选择,或创建一个新的连接。我们在此示例中使用的数据库位于”local instance”连接上,因此我们只需单击”Next”按钮即可继续操作。
该向导将尝试连接并检索通过所选连接可用的现有架构的列表。建立连接后,我们再次单击“下一步”按钮。此时,系统将提示我们选择要包含的架构,在这种情况下,我们将选择book_store
并再次单击”Next”。
该程序将检索有关所选模式的信息。准备就绪后,再次单击”Next”按钮。在下一页中,系统将提示我们选择要进行reverse-engineer的对象。在这种情况下,我们选择“导入MySQL表对象”,确保选中“在图上放置导入的对象”复选框,然后单击”Execute”按钮。
该程序将执行操作。准备就绪后,只需单击”Next”按钮,将显示已执行操作的摘要:
此时,我们单击”Close”按钮。在将打开的页面上,我们双击”EER Diagram”部分中的图图标,以可视化生成的图:
在这种情况下,我们从现有模式创建了一个图,但是,MySQL工作台使得可以使用图从头开始创建一个模式。
执行查询
如前所述,当MySQL工作台应用程序打开时,查询选项卡已经可用。它称为“查询1”。我们可以使用editor-like接口(除其他功能外,提供auto-completion功能)来执行SQL查询。例如,假设我们要执行INSERT
查询以使用一些作者信息填充我们的”author”表:
要执行查询,我们只需单击”thunder”图标。我们还可以选择仅执行查询的一部分。默认情况下,将执行整个查询。查询结果记录在专用部分中:
结论
在本教程中,我们只是简单介绍了MySQL Workbench实用程序提供的几个功能,因为在这里不可能详尽地提及它们。我们看到了如何安装程序,如何创建,修改或删除与MySQL数据库的连接,如何以图形方式创建模式及其表,以及如何reverse-engineer现有模式来生成entity-relationship图。最后,我们看到了如何通过专用编辑器发出查询。随意浏览该应用程序以发现其许多功能!