如何在linux服务器上安全地查找所有mysql数据库

如何在linux服务器上安全地查找所有mysql数据库,mysql,linux,Mysql,Linux,这篇文章的标题几乎说明了一切: 如何获取linux服务器上所有mysql数据库的列表 我在某个地方读到过,mysql用户在可用数据库列表上的视图可能会受到限制 但是我需要一个特定linux服务器上安装的所有mysql数据库的完整列表(本例中为OpenSuse 13.1)。您需要使用 SHOW DATABASES列出MySQL服务器主机上的数据库。显示 模式是SHOW数据库的同义词。如果存在类似条款, 指示要匹配的数据库名称。可以给出WHERE子句 使用更一般的条件选择行的步骤 但是,除非您具有全

这篇文章的标题几乎说明了一切:

如何获取linux服务器上所有mysql数据库的列表

我在某个地方读到过,mysql用户在可用数据库列表上的视图可能会受到限制

但是我需要一个特定linux服务器上安装的所有mysql数据库的完整列表(本例中为OpenSuse 13.1)。

您需要使用

SHOW DATABASES列出MySQL服务器主机上的数据库。显示 模式是SHOW数据库的同义词。如果存在类似条款, 指示要匹配的数据库名称。可以给出WHERE子句 使用更一般的条件选择行的步骤

但是,除非您具有全局
SHOW databases
权限,否则只能查看您拥有某种权限的数据库


另一种选择是使用客户端

可以使用mysqlshow客户端快速查看哪些数据库 存在、它们的表或表的列或索引


通过执行以下操作列出所有数据库:

mysql -u<username> -p<password> -e"SHOW DATABASES"

正如您在上面的输出中所看到的,有4个数据库:
mysql
performance\u schema
scotchbox
wp
“mysql用户的视图可能有限制”-这就是您作为管理员这样做的原因。你说的“完整清单”是什么意思?是否有其他MySQL实例使用自己的数据库运行在同一台服务器上?您是否也对在该主机上运行的其他非MySQL数据库服务器感兴趣?你到底想完成什么?为什么?谢谢。我如何才能确定所讨论的用户(在本例中不是root用户)是否具有全局显示数据库权限?@wobits-well请尝试运行该命令。您将得到您的答案:-)那么,用户“root”通常有足够的权限来显示所有现有数据库,这是正确的吗?@wobits-这只是连接到mysql服务器的一个示例用户名。
mysql -u<username> -p<password> -e"SHOW DATABASES"
ls -l /var/lib/mysql

total 28692
-rw-r--r-- 1 mysql mysql        0 May 24  2017 debian-5.5.flag
-rw-rw---- 1 mysql mysql  5242880 Oct  6 16:50 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 Jul 10  2015 ib_logfile1
-rw-rw---- 1 mysql mysql 18874368 Jan 17  2018 ibdata1
drwx------ 2 mysql mysql     4096 May 24  2017 mysql
-rw-rw---- 1 mysql mysql        6 May 24  2017 mysql_upgrade_info
drwx------ 2 mysql mysql     4096 May 24  2017 performance_schema
drwx------ 2 mysql mysql     4096 Jul 10  2015 scotchbox
drwx------ 2 mysql mysql     4096 Jan 17  2018 wp