如何列出MySQL数据库(分步代码教程)

如何列出MySQL数据库(分步代码教程)插图

MySQL是当今最广泛使用的关系型数据库管理系统(RDBMS)之一。它是一个强大的数据库平台,允许创建和管理可扩展的数据库,主要使用结构化查询语言(SQL)。

MySQL服务器是数据库所处的环境–也是它们被访问的地方。作为一个服务器管理员,你经常需要检索这个环境的细节–列出服务器上的数据库,显示特定数据库的表,查看用户角色和权限,访问约束条件,等等。

本文将解释如何通过命令提示符列出MySQL数据库的详情办法。

  1. 列出MySQL数据库的先决条件
  2. 在你的系统变量环境中添加MySQL路径
  3. 登录到MySQL
  4. 显示MySQL服务器内的数据库
  5. 过滤数据库输出的结果
  6. 使用信息结构来查询表元数据
  7. 常见的问题和最佳做法
  8. 数据库管理工具

列出MySQL数据库的先决条件

你必须在你的本地机器上运行MySQL服务器才能开始使用。如果你没有MySQL,有几种方法可以安装它。

  • 安装WAMPServer、XAMPP、MAMP或任何其他包括MySQL的软件分发栈。
  • 直接从他们的官方网站下载并运行MySQL安装程序,通过设置过程来配置和安装MySQL服务器和其他工具。

为了方便地使用命令行运行MySQL命令,你需要将MySQL可执行文件的路径添加到你的系统环境中。如果你使用选项二安装了MySQL,这一步就没有必要了,所以可以随意跳过下一节。

将MySQL路径添加到你的系统的变量环境中

如果你在Windows电脑上运行XAMPP或WAMP,本节将指导你把MySQL可执行路径添加到你的系统变量环境中。

首先,启动你的Windows文件资源管理器并导航到此电脑。点击你安装WAMP或XAMPP软件包的驱动器(C:)。

如果你正在运行XAMPP,导航到xampp > mysql > bin,并复制bin文件夹的完整路径。对于WAMP,通过{your-wamp-version} > bin > mysql > {your-mysql-version} > bin导航到其完整路径。

bin文件夹的完整路径

bin文件夹的完整路径

点击 “Start“菜单,搜索 “path”。点击Edit the system environment variable

然后,点击Startup and Recovery(启动和恢复)下的Environment Variables(环境变量),选择PATH变量并点击编辑

接下来,点击 “新建“,粘贴你的MySQL可执行文件的完整路径(你之前复制的)。

编辑环境变量

编辑环境变量

然后,通过单击 “确定 “来保存这些更改。

现在路径已被添加,你可以在终端执行MySQL命令。

登录到MySQL

要列出MySQL数据库,用户必须被授权访问所有数据库,或者你必须设置一个全局的SHOW DATABASES权限,授予所有用户访问权。

在通过命令提示符登录之前,请确保你的MySQL服务器正在运行。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mysql -u -p
mysql -u -p
mysql -u  -p

注意:用你的用户名替换 u 。MySQL的默认用户名是 root,而密码是空的(默认没有密码)。

登录到MySQL

登录到MySQL

显示MySQL服务器中的数据库

现在你已经登录了,你可以通过执行 SHOW DATABASES 命令列出服务器中存在的MySQL数据库。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SHOW DATABASES;
SHOW DATABASES;
SHOW DATABASES;

在返回数据中,你会得到存储中存在的所有数据库。

存储的数据库的列表

存储的数据库的列表

 

在返回的六个数据库中,information_schemaperformance_schema是安装MySQL时自动生成的默认数据库。

information_schema 数据库是一个不可修改的数据库,它存储了与数据库和其他存储在MySQL服务器中的对象(视图、用户权限、表、约束等)有关的所有信息。

过滤数据库输出的结果

以前,你用 SHOW DATABASES返回MySQL服务器上的所有数据库,但你经常需要过滤数据库输出,主要是当服务器上有许多数据库时。

LIKE 子句根据一个指定的模式过滤 SHOW DATABASE 的结果。下面是一般的语法。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SHOW DATABASES LIKE '';
SHOW DATABASES LIKE '';
SHOW DATABASES LIKE '';

它必须是一个代表你想匹配的模式的字符串。该字符串必须以百分比符号(%)结尾,表示一个或多个字符。

例如,如果你想只显示名称以字母w开头的数据库,你可以通过运行以下程序来实现。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SHOW DATABASES LIKE 'w%';
SHOW DATABASES LIKE 'w%';
SHOW DATABASES LIKE 'w%';

下面是过滤后的结果。

使用'w%'过滤后的数据库响应

使用’w%’过滤后的数据库响应

使用信息结构来查询表元数据

早些时候,你看到了 information_schema 数据库如何在MySQL服务器环境中存储与数据库、表和其他对象有关的所有信息。

information_schema 数据库利用schemata表来存储所有数据库的信息。对于数据库的过滤,你可以进行复杂的搜索,以查询特定数据库的模式表。

例如,如果你想要那些名字以 “samp “或 “word “开头的数据库,你可以结合其他几个子句来进行复杂查询。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

下面是结果。

复杂查询的结果

复杂查询的结果

此外,你还有来自 information_schema 数据库的tables表,它包含了所有表的信息。同样,你可以执行一个查询,只检索符合指定模式的表。

例如,下面的查询只返回WordPress表的模式信息–只返回名称以 “wp_”开头的表。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

结果是这样的。

只有WordPress表的信息结构的结果

只有WordPress表的信息结构的结果

在 information_schema 中发现的其他表格包括columnsconstraintstable_constraintscheck_constraintsreferential_constraints

常见的问题和最佳做法

执行SQL时最常见的错误原因之一是没有在语句的结尾使用分号。

另一个原因是使用无效的SQL语法或表/列名称拼写错误。为了避免这种情况,请交叉检查表或列的名称,确保其拼写正确。请确保也要交叉检查你的语法。

这里有一些其他的最佳做法要记住。

对SQL关键词使用大写字母

当写SQL代码时,总是对SQL关键字使用大写字母,对表名和列名使用小写字母。这使你的代码更易读,更不容易出错。

所以,与其这样:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
select * from information_schema.tables where table_name like 'wp_%';
select * from information_schema.tables where table_name like 'wp_%';
select * from information_schema.tables where table_name like 'wp_%';

不如这样做:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

避免使用 SELECT *

避免在你的SQL查询中使用SELECT *。你的请求是不明确的,因为你不能总是知道它将返回什么。相反,指定你想从表中选择的列。

所以,与其这样:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT * EXCEPT(phone) FROM users.profile
SELECT * EXCEPT(phone) FROM users.profile
SELECT * EXCEPT(phone) FROM users.profile

不如这样:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT name,
dob,
address,
country,
address,
FROM user.profile
SELECT name, dob, address, country, address, FROM user.profile
SELECT name,
    dob,
    address,
    country,
    address,
FROM user.profile

缩进你的代码

最后,还有一个使查找错误更容易的提示是缩进你的代码。这将使它更有可读性。

数据库管理器

另外,你可以选择通过使用数据库管理器来管理你的数据库,而不用写SQL。这允许用户访问数据库管理功能,而不需要编写SQL查询。这个软件连接到MySQL服务器,并提供一个用户界面来暴露数据库的功能。一旦连接,用户界面将显示服务器上的所有数据库。各个管理工具的外观和感觉各不相同,但过程是相似的。

使用Navicat管理MySQL

Navicat数据库管理器

有几个工具可供选择,包括 phpMyAdmin 和 Adminer。我们对目前最受好评的几款的MySQL数据库管理工具进行了整理,具体如下:

MySQL Workbench

MySQL Workbench

Image: MySQL Workbench

甲骨文公司的MySQL Workbench是一个引人注目的GUI工具,来自开发和维护MySQL的同一家公司。正因为如此,用户可以确信,它将与所有未来的MySQL迭代和功能一起工作。

MySQL Workbench允许你定义和管理连接参数、数据库-服务器连接以及组合查询的执行。还包括一个表编辑器,它允许用户轻松地改变列、索引、插入、选项、权限、表、触发器和分区。最后,MySQL Workbench允许用户跨MySQL版本或在MySQL和其他数据库系统之间迁移数据。

主要特点

  • 易于使用的界面
  • 支持Windows、macOS和Linux
  • 能够查看服务器日志和状态

优点

  • 获得GPL授权,可免费下载
  • 可视化查询和模式构建器
  • 因为这是唯一由MySQL维护和开发的SQL客户端,你可以确信它将拥有所有最新的功能来反映MySQL的服务器更新。
  • 使用EverSQL插件,可以直接从IDE(集成开发环境)中优化SQL查询。

缺点

  • 一些用户报告了系统崩溃的情况
  • 大型查询有时无法停止,必须强制关闭
  • 在某些情况下,整个应用程序必须被终止。

价格

MySQL Workbench的社区版可以免费使用。然而,一些客户可能选择购买MySQL Workbench的标准版、企业版或集群运营商级版本。这些版本的价格从2,140.00美元到64,200.00美元不等。

BeeKeeper Studio

BeeKeeper Studio

Image: BeeKeeper Studio

BeeKeeper Studio是一个开源的SQL编辑器,用于关系查询,可用于一系列的数据库类型,包括MySQL、PostgreSQL和SQLite。无论用户是否连接到互联网,BeeKeeper都可以使用。这对那些需要灵活使用数据库和使用地点的企业来说是非常理想的。

BeeKeeper提供快速响应的参与标签导航,无需在窗口之间切换,从而提高工作效率。BeeKeeper也致力于保护隐私,所以它最大限度地减少了收集用户的数据量。

主要特点

  • 现代化的用户界面
  • 提供自动完成的SQL查询
  • 可离线工作,并可通过防火墙连接
  • 支持Windows、macOS和Linux。

优点

  • 支持多种数据库类型,包括MySQL和PostgreSQL
  • 拥有一个庞大的贡献者和追随者社区,它是免费和开源的
  • 在标签之间切换很简单
  • 我们在使用该软件时没有遇到任何滞后或问题
  • 允许你保存和命名查询,以便将来使用

缺点

  • 因为目前不支持某些数据库,所以它不能作为一个全能的数据库IDE来使用
  • 还没有高级数据库管理功能,如SQL转储恢复和数据迁移。
  • 目前不支持插件,也没有可用的社区增强功能。

价格

BeeKeeper是免费使用的。但是,客户可以选择购买BeeKeeper Studio终极版的许可证,价格为99美元。

phpMyAdmin

phpMyAdmin
Image: phpMyAdmin

phpMyAdmin是另一个流行的基于PHP、基于网络的MySQL管理工具。这个软件的设置和使用都很简单,而且是免费的。数据库管理员和架构师可以使用该应用程序来完成从简单到复杂的工作,如创建多格式的数据库可视化。

它的基本功能使用户无需了解MySQL就能开发可用的网站。它还提供了先进的功能,如多服务器管理和逐例查询(QBE),以支持更复杂的使用案例。用户可以通过GUI执行普通操作,也可以直接执行更复杂的SQL语句的指令。

主要特点

  • 跟踪数据库和表的变化
  • 用80种不同的语言进行交互,包括从右到左和从左到右的语言
  • 能够同时运行几个服务器

优点

  • 表、数据库、字段、视图和索引都受到MySQL方法的支持,如浏览和删除
  • 可以用各种格式导入和导出数据
  • 预先定义的函数和格式被用来转换存储的数据
  • 因为它是基于网络的,所以几乎可以从任何计算机访问它
  • 易于设置和使用

缺点

  • 它不能与任何数据库一起使用,因为它只支持MySQL和MariaDB
  • 虽然它支持传统的服务器和系统,但它的发展并没有跟上当前行业的要求。

价格

phpMyAdmin是免费使用的。

dbForge Studio for MySQL

dbForge Studio

Image: dbForge Studio

dbForge Studio是一个IDE中的多功能GUI工具。它为MySQL数据库的开发和管理提供了广泛的特性和功能。

通过dbForge Studio,用户可以创建和运行查询,使用简单明了的界面评估表数据,设计和调试存储例程,自动化数据库对象管理,等等。其复杂的编码功能还允许您开发和编辑代码配置文件,从而产生干净、标准化的代码。CRUD生成器还可以生成DELETE、INSERT、SELECT和UPDATE查询的结果脚本到SQL文件。

主要特点

  • 创建、执行和排除查询的故障
  • 备份向导可以进行预定的数据库备份
  • 自动的数据库维护和分析

优点

  • 新手和高级用户都可以使用的简单界面
  • 内置的查询分析器允许你对你的查询进行分析并与其他查询进行比较
  • 通过拖放创建你自己独特的查询和数据库模式
  • 语法完成和检查器很好
  • 完整的数据库用户和权限管理的选项
  • 允许存储代码片断
  • 支持大型SQL文件,无需打开它们

缺点

  • 没有免费版本;价格比许多替代品高
  • JSON查看器在某些方面过于简单(例如,没有办法折叠或扩展数据块)
  • 当大量的连接被打开时,用户声称自动完成功能在某些情况下会停止工作

价格

  • 标准版:179.95美元
  • 专业版:299.95美元
  • 企业版:399.95美元

Navicat for MySQL
Image: Navicat for MySQL

Navicat for MySQL 是一个强大的 MySQL GUI 工具,可以在任何时候自动保存和共享你的连接设置、模型和查询到 Navicat Cloud。你可以用查询生成器编写和编辑查询,只需要有限的 SQL 知识,而不用担心语法问题。

Navicat 提供通过 SSH(安全壳)隧道连接到 MySQL 数据库的能力。SSH 通道允许坚固的认证和加密机制,主机可以在不影响安全的情况下彼此远程通信。它还通过支持广泛的数据格式来促进数据移动。

主要特点

  • 提供微软Excel、TXT、XML、JSON和其他格式的数据输出
  • 提供数据生成和可视化工具
  • 支持Windows、macOS和Linux系统

优点

  • 用户界面直观,使用简单
  • 如果你没有为远程连接打开默认端口,你可以使用SSH隧道来访问MySQL数据库
  • 安排数据库工作,如备份、恢复和报告生成
  • 可以从ODBC、Microsoft Excel和Access、DBF、TXT、CSV、XML和JSON文件导入数据
  • 可视化的模式和查询生成器
  • 订阅版允许团队成员协作和分享搜索、连接等。

缺点

  • 专业版的价格很高
  • 在Linux上使用Wine来运行IDE,这使其速度变慢
  • 一些使用案例需要打开一个新的标签/窗口,消费者认为这是一个耗时的操作。

价格

  • 标准版:每年179.99美元
  • 企业版:每年215.88美元
  • 永久版:每个许可证349.00美元

DBeaver

DBeaver

Image: DBeaver

开发人员和数据库管理员都利用DBeaver,因为它是一个开源的、跨平台的SQL数据库GUI工具。有了这个平台,你可以很容易地对你的数据进行全文检索,利用GUI生成过滤的表格和显示。

将它连接到你的本地数据库的方法相当简单,你不需要任何先前的CLI经验来使用它。

这个程序可以导入和导出各种文件格式的数据,包括CSV、HTML、XML、JSON、XLS和XLSX。这个工具还可以用来为数据库或模式创建ER(实体关系)图。

主要特点

  • 数据分析图表允许对查询进行可视化表示
  • 模拟数据生成器(在企业版中可用)以更简单的方式生成测试用的有效数据
  • 可视化查询生成器使复杂的数据库设计更容易,对于理解表之间的关系非常有用。

优点

  • DBeaver可以连接到任何有JDBC驱动的数据库,包括MariaDB、Sybase、SQLite、Oracle、SQL Server、DB2、MS Access、Firebird、Teradata和Apache Hive。
  • 表编辑器使得改变表、列、索引、触发器、选项、权限、插入和分区以创建多个数据视图变得容易。
  • 支持Windows、Linux和MacOS

缺点

  • 处理大型数据集时可能会很慢
  • 偶尔会出现错误
  • 有时大型查询必须被强制杀死
  • 在某些情况下,必须终止整个应用程序。

价格

  • 免费
  • 精简版:10美元(每月订阅)至99美元(永久许可)
  • 企业版:23美元(每月订阅)至230美元(永久许可证)。
  • 终极版:起价为440美元的永久许可证

SQLyog

SQLyog
Image: SQLyog

SQLyog是一个具有可视化数据设计和比较工具的数据库管理应用程序。你可以使用SQLyog轻松连接到你的数据库。

这个平台对你所有的数据进行加密,从SQL语句的格式化到快速的数据检索。如果你没有为远程连接打开默认端口,你可以使用SSH隧道来访问MySQL数据库。这些功能对于在使用该工具时维护你的系统安全很有价值。

SQLyong使用户能够安排备份,自动进行数据导出和同步,并从任何ODBC源向MySQL导入外部数据。

然而,SQLyong与Mac OS X或Linux不兼容–它只能在Windows下下载。如果你是一个Linux或Mac OS X用户,这个产品不适合你。

主要特点

  • 模式优化器和索引分析器允许你分析哪些数据被存储在表中
  • 使用SSH隧道来很好地操纵你的MySQL服务器,即使假设MySQL端口被封锁或不允许远程访问
  • 执行多线程查询,可选择同时执行多个查询。

优点

  • 现代、创新和可定制的用户界面
  • 创建模式表、约束和查询的可视化表示
  • 可以安排备份、恢复、电子邮件通知和其他任务
  • 快速和一致
  • 数据和模式同步工具运行良好
  • 终极版中包含了一个良好的数据比较工具

缺点

  • 专业版的价格很高
  • 一些用户报告说偶尔会出现程序问题
  • 缺乏对MySQL以外的数据库的支持
  • 没有原生的Linux或Mac支持
  • 不支持在多个标签之间进行拖放操作

价格

  • SQLyog Ultimate:每个用户299美元
    SQL Diagnostic Manager for MySQL:每台服务器每年399美元

DronaHQ

DronaHQ

Image: DronaHQ

DronaHQ是一个低代码开发平台,允许你建立MySQL图形用户界面、管理面板、仪表板和自定义应用程序,而无需高级编码经验。

你可以创建全功能的MySQL图形用户界面,执行CRUD操作,通过RESTGraphQL API连接到任何东西,在表格、图表和JSON浏览器中查看数据,并使用所见即所得的UI编辑器和预建的UI控件自动完成任务。通过DronaHQ,你可以通过在平台上创建交互式GUI工具来快速检查、更新和分析信息,无论你喜欢列表、表格还是图表。

主要特点

  • 即时连接到MySQL数据库,提供一个直观的拖放界面,以快速创建自定义的MySQL前台
  • 可视化生成器使用简单。可重复使用的控件,如图表、表格网格、列表、详细视图、按钮、表单字段和自定义UI控件,在创建完美的用户界面时可以节省更多的时间。

优点

  • 只需点击几下,你就可以通过REST或GraphQL API连接到MySQL和几乎任何其他东西。
  • 当你需要基于运行时定义的标准进行服务器端过滤时,使用这个可视化查询生成器来查询你的SQL/NoSQL数据库
  • 你可以从任何终端用户的门户访问你的数据库GUI–网页、平板电脑或手机
  • 所有(基于使用的)价格水平允许无限数量的用户
  • 如果你需要与更多的终端用户分享工具/应用程序,你可以授予基于角色的访问权限,以限制谁有查看权限、编辑权限、删除权限等。

缺点

  • 由于DronaHQ在创建时没有考虑到MySQL,它缺乏一些功能,如实时查询调试。
  • 现在只有大约50个DB(数据库)连接器可用,但更多的连接器即将推出。

价格

  • 开发者:免费
  • 初学者:每月100美元(每年计费)。
  • Business:每月500美元(按年计费)。
  • Enterprise:自定义定价

小结

作为一名服务器管理员,你需要能够有效和准确地检索关于你的MySQL服务器上的数据库的详细信息。查看服务器上有哪些数据库,查看特定的表和其中的信息,以及访问有关用户角色和权限的信息,这些都是至关重要的任务。幸运的是,从你的命令行使用SQL可以使这一切变得轻而易举。

评论留言