MacOS终端执行SHOW DATABASES无法查看MySQL Workbench创建的数据库
解决终端无法查看Workbench创建的MySQL数据库问题
可能的原因及解决方案
1. 终端与Workbench连接的是不同MySQL实例
MacOS上可能同时存在多个MySQL安装版本(比如brew安装包和官方pkg安装的),Workbench调用的是官方实例,终端却默认用了另一个版本的客户端。
- 检查终端MySQL客户端路径:执行
which mysql - 查看Workbench连接的实例信息:打开Workbench,进入对应连接的「Server Status」,查看
MySQL Version和Socket Path - 强制终端使用Workbench对应的客户端:用完整路径启动,比如官方安装的默认路径是
/usr/local/mysql/bin/mysql,执行/usr/local/mysql/bin/mysql -u 你的用户名 -p登录后再查询
2. 终端登录的MySQL用户权限不足
Workbench可能用root用户操作,终端却用了普通用户,普通用户默认没有权限查看其他用户创建的数据库。
- 切换root用户登录:
mysql -u root -p,输入密码后执行SHOW DATABASES;确认是否能看到目标库 - 给普通用户授权:登录root后执行以下SQL(替换占位符为你的实际信息):
GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost'; FLUSH PRIVILEGES;
3. 数据库名称大小写不匹配
MacOS文件系统默认不区分大小写,但如果MySQL配置了lower_case_table_names=0(开启大小写敏感),终端输入的库名大小写和Workbench创建的不一致就会看不到。
- 查看当前大小写配置:登录MySQL后执行
SHOW VARIABLES LIKE 'lower_case_table_names'; - 若值为0,要么确保终端输入的库名大小写和创建时完全一致,要么修改MySQL配置文件(
my.cnf或my.ini)添加lower_case_table_names=1,重启服务生效
4. Socket连接路径不一致
Workbench和终端用了不同的Socket路径,导致连接到不同的本地实例。
- 查看Workbench的Socket路径:在连接设置里,「Connection Method」选「Local Socket」时的「Socket File」路径
- 终端连接时指定Socket:
mysql -u 用户名 -p --socket=/path/to/your/socket(比如官方默认路径是/tmp/mysql.sock)
示例验证流程
- 打开Workbench,确认已创建的数据库名(比如
my_test_db)和使用的登录用户 - 在终端执行
/usr/local/mysql/bin/mysql -u root -p,输入密码登录 - 执行
SHOW DATABASES;,预期输出:+--------------------+ | Database | +--------------------+ | information_schema | | my_test_db | | mysql | | performance_schema | | sys | +--------------------+
内容的提问来源于stack exchange,提问作者Nisheet Karan
相关产品推荐
相关产品推荐

