MySQL 是当今使用最广泛的关系数据库管理系统 (RDBMS) 之一。它是一个强大的数据库平台,允许创建和管理可扩展的数据库,主要使用结构化查询语言 (SQL)。
MySQL服务器是数据库所在的环境,也是访问数据库的地方。作为服务器管理员,您经常需要检索有关此环境的详细信息——列出服务器上的数据库、显示来自特定数据库的表、查看用户角色和权限、访问限制等等。
本文将讲解如何通过命令提示符列出MySQL数据库的来龙去脉。
列出 MySQL 数据库先决条件
您必须在本地计算机上运行 MySQL 服务器才能开始。如果您没有 MySQL,有几种安装方法:
- 安装 WAMPServer、XAMPP、MAMP 或任何其他包含 MySQL 的软件分发堆栈。
- 直接从其官方网站下载并运行 MySQL 安装程序,以完成配置和安装 MySQL 服务器和其他工具的设置过程。
为了使用命令行轻松运行MySQL命令,您需要将MySQL可执行文件的路径添加到您的系统环境中。如果您使用选项 2 安装 MySQL,则不需要此步骤,因此请随时跳到下一节。
将MySQL路径添加到系统变量环境
如果您在Windows电脑上运行XAMPP或WAMP,本节将指导您将MySQL可执行路径添加到系统变量中环境中。
Kinsta 太宠我了,我现在要求每个提供商级别的服务都这样做。我们还尝试通过我们的 SaaS 工具支持来达到这个水平。
来自@Suganthanmn Mohanadasan 的 Suganthan
查看计划
首先,启动 Windows 文件资源管理器并导航至此电脑。单击安装 WAMP 或 XAMPP 包 (C:) 的驱动器。
如果您正在运行 XAMPP,请导航至 xampp > mysql > bin 并将完整路径复制到 bin 文件夹。对于 WAMP,通过 {your-wamp-version} > bin > mysql > {your-mysql-version} > bin 导航到其完整路径。
bin文件夹的完整路径。
单击“开始”菜单并搜索“路径”。单击编辑系统环境变量。
然后,单击“启动和恢复”下的“环境变量”,选择 PATH 变量并单击“编辑”。
接下来,单击新建并将完整路径粘贴到您的 MySQL 可执行文件(您之前复制的)。
编辑环境变量。
然后,单击确定以保存您的更改。
路径添加完成后,就可以在终端执行MySQL命令了。
登录 MySQL
要列出 MySQL 数据库,用户必须有权访问所有数据库,或者您必须设置全局 SHOW DATABASES 权限以授予所有用户访问权限。
在通过命令提示符登录之前确保您的 MySQL 服务器正在运行:
mysql -u -p
注意:替换您的用户名。 MySQL默认用户名为root,密码为空(默认无密码)。
登录MySQL。
显示 MySQL 服务器中的数据库
现在您已登录,您可以通过执行 SHOW DATABASES 命令列出服务器中存在的 MySQL 数据库:
显示数据库;
作为回报,您将获得存储中存在的所有数据库:
存储中的数据库列表。
返回的6个数据库中,information_schema和performance_schema是默认安装MySQL时自动生成的数据库。
information_schema数据库是一个不可修改的数据库,它存储了MySQL服务器中存储的与数据库和其他对象(视图、用户权限、表、约束等)相关的所有信息。
对数据库输出的结果进行过滤
之前使用SHOW DATABASES返回MySQL服务器上的所有数据库,但是经常需要对数据库输出进行过滤,主要是有的时候服务器上的许多数据库。
LIKE子句根据指定的模式过滤SHOW DATABASE的结果。这是一般的语法:
Display the database like ";
它必须是一个字符串,表示你要匹配的模式。字符串必须以百分号%结尾,表示一个或多个字符。
例如,如果您只想显示名称以字母 w 开头的数据库,则可以运行以下命令:
Display databases like 'w% ';
这是过滤后的结果:
使用 "w%" 时过滤数据库响应。
使用信息模式查询表元数据
之前,您看到了 information_schema 数据库是如何相对于数据库存储的在MySQL服务器环境中,与表和其他对象相关的所有信息。
information_schema数据库使用schemata表来存储所有数据库的信息。对于数据库过滤,可以执行复杂的搜索来查询schema表一个特定的数据库。
F或者例如,如果您想要名称以“samp”或“word”开头的数据库,您可以组合其他几个子句来进行复杂查询:
SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';
结果如下:
复杂查询的结果。
此外,您在 information_schema 数据库中有 tables 表,其中包含有关所有表的信息。同样,您可以执行查询以仅检索与指定模式匹配的表。
例如,以下查询仅返回 WordPress 表的模式信息——仅返回名称以“wp_”开头的表:
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
结果如下:
仅针对 WordPress 表的架构信息的结果。
information_schema 中的其他表包括列、约束、table_constraints、check_constraints 和 referential_constraints。
常见问题和最佳实践
执行 SQL 时最常见的错误原因之一是未能在语句末尾使用分号。
另一个是无效的 SQL 语法或拼写错误的表/列名称。为避免这种情况,请交叉检查表名或列名以确保拼写正确。一定要交叉检查你的语法。
这里有一些其他的最佳实践需要牢记。
对 SQL 关键字使用大写
编写 SQL 代码时,始终使用大写 SQL 关键字和小写表名和列名。这使您的代码更具可读性并且更不容易出错。
所以不是这样:
select * from information_schema.tables where table_name like 'wp_%';
这样做:
SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';
避免 SELECT *
避免在 SQL 查询中使用 SELECT *。您的请求不明确,因为您并不总是知道它会返回什么。相反,指定要从表中选择的列。
所以不要这样:
SELECT * from users.profile except (Phone)
这样做:
选择姓名,出生Date, Address, Country, Address, FROM user.profile
Indent Your Code
最后,另一个更容易发现错误的技巧是缩进代码。它使它更具可读性!
数据库管理员
或者,您可以选择使用数据库管理器在不编写 SQL 的情况下管理您的数据库。这使用户无需编写 SQL 查询即可访问数据库管理功能。该软件连接到 MySQL 服务器并提供一个用户界面来公开数据库功能。连接后,UI 将显示服务器上的所有数据库。管理工具的外观和感觉各不相同,但过程相似。
DevKinsta的数据库管理器。
有多种工具可供选择,包括 phpMyAdmin 和 Adminer,两者都可以通过 DevKinsta 访问。 DevKinsta 的默认管理工具是 Adminer,因为它轻巧、简单、快速,而且可以轻松访问 phpMyAdmin。
概述
作为服务器管理员,您需要能够高效准确地检索有关 MySQL 服务器上数据库的详细信息。查看服务器上的数据库、查看特定表及其中的信息以及访问有关用户角色和权限的信息的能力都是关键任务。幸运的是,从命令行使用 SQL 使这变得轻而易举。
当您的数据库管理需要超出查找表的范围时,Kinsta 可以提供帮助。立即了解有关我们的可扩展数据库托管选项的更多信息!
通过以下方式节省时间、成本并最大限度地提高网站性能:
- WordPress 托管专家的即时帮助,全天候 24 小时。
- Cloudflare 企业集成。
- 全球观众覆盖全球 35 个数据中心。
- 使用我们内置的应用程序性能监控进行优化。
所有这些以及更多,都在一个没有长期合同、协助迁移和 30 天退款保证的计划中。查看我们的计划或与销售人员交谈以找到适合您的计划。