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 的 Suganthan Mohanadasan
查看计划
首先,启动您的 Windows 文件资源管理器并导航到此 PC。 单击已安装 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 数据库:
显示数据库;
作为回报,您将获得存储中存在的所有数据库:
存储中的数据库列表。
在返回的六个数据库中,information_schema 和 performance_schema 是安装 MySQL 时自动生成的默认数据库。
information_schema 数据库是一个不可修改的数据库,它存储与存储在 MySQL 服务器中的数据库和其他对象(视图、用户权限、表、约束等)相关的所有信息。
过滤数据库输出的结果
以前,您使用 SHOW DATABASES 返回 MySQL 服务器上的所有数据库,但您经常需要过滤数据库输出,主要是当服务器上有很多数据库时。
LIKE 子句根据指定的模式过滤 SHOW DATABASE 的结果。 这是一般语法:
显示数据库,如 ”;
它必须是表示您要匹配的模式的字符串。 字符串必须以百分比符号 % 结尾,表示一个或多个字符。
例如,如果您只想显示名称以字母 w 开头的数据库,您可以运行以下命令:
显示像 ‘w%’ 这样的数据库;
这是过滤后的结果:
使用“w%”时过滤的数据库响应。
使用信息模式查询表元数据
之前,您看到了 information_schema 数据库如何存储与 MySQL 服务器环境中的数据库、表和其他对象相关的所有信息。
information_schema 数据库使用 schemata 表来存储有关所有数据库的信息。 对于数据库过滤,您可以执行复杂的搜索来查询特定数据库的架构表。
例如,如果您想要名称以“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 *。 您的请求不清楚,因为您不能总是知道它会返回什么。 而是指定要从表中选择的列。
所以代替这个:
从 users.profile 中选择 * 除了(电话)
做这个:
选择姓名、出生日期、地址、国家、地址、FROM user.profile
缩进你的代码
最后,使查找错误更容易的另一个技巧是缩进您的代码。 它使它更具可读性!
数据库管理员
或者,您可以选择通过使用数据库管理器来管理您的数据库,而无需编写 SQL。 这使用户无需编写 SQL 查询即可访问数据库管理功能。 该软件连接到 MySQL 服务器并提供用户界面来公开数据库功能。 连接后,UI 将显示服务器上的所有数据库。 管理工具的外观和感觉各不相同,但过程相似。
DevKinsta 的数据库管理器。
有多种工具可供选择,包括 phpMyAdmin 和 Adminer,这两种工具都可以通过 DevKinsta 访问。 DevKinsta 的默认管理工具是 Adminer,因为它轻量级、简单、快速,但可以轻松访问 phpMyAdmin。
概括
作为服务器管理员,您需要能够高效准确地检索有关 MySQL 服务器上数据库的详细信息。 查看服务器上的数据库、查看特定表和其中的信息以及访问有关用户角色和权限的信息的能力都是至关重要的任务。 幸运的是,从命令行使用 SQL 可以让这一切变得轻而易举。
当您的数据库管理需要超越查询表时,Kinsta 可以提供帮助。 立即详细了解我们的可扩展数据库托管选项!
通过以下方式节省时间、成本并最大限度地提高站点性能:
- 来自 WordPress 托管专家的即时帮助,24/7。
- Cloudflare 企业集成。
- 全球受众覆盖全球 35 个数据中心。
- 通过我们内置的应用程序性能监控进行优化。
所有这些以及更多,在一个没有长期合同、协助迁移和 30 天退款保证的计划中。 查看我们的计划或与销售人员交谈以找到适合您的计划。