使用Sequel Pro无法查看Docker容器中存在的Laravel数据库表
解决Laravel Sail MySQL容器Sequel Pro无法查看数据库/表的问题
核心排查与修复步骤
1. 核对Sequel Pro连接参数
- 主机:填
127.0.0.1或localhost(容器名organiser_mysql_1仅能在Docker内部网络访问,外部工具无法直接使用) - 端口:查看项目根目录
docker-compose.yml中MySQL服务的端口映射,默认是3306(对应配置${FORWARD_DB_PORT:-3306}:3306),如果.env里修改了FORWARD_DB_PORT就用修改后的值 - 用户名/密码:用户名固定为
root,密码必须和项目.env文件里的DB_PASSWORD完全一致(容器初始化时用这个值设置root密码)
2. 授权root用户远程访问权限
容器内的root用户默认仅允许localhost连接,外部工具(比如Sequel Pro)需要额外授权:
- 进入容器MySQL:
docker exec -it organiser_mysql_1 mysql -uroot -p - 输入密码登录后,执行授权SQL:
把GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的DB_PASSWORD'; FLUSH PRIVILEGES;你的DB_PASSWORD替换成.env里的真实密码
3. 确认目标数据库存在
登录容器MySQL后,执行SHOW DATABASES;,检查organiser数据库是否存在:
- 如果不存在,说明Laravel还没创建库,执行
sail artisan migrate完成数据库初始化 - 如果存在,继续下一步
4. Sequel Pro连接后显式切换数据库
如果登录时没指定数据库,登录后:
- 左侧面板点击「添加数据库」,输入
organiser并确认 - 或者在查询面板执行
USE organiser;,然后刷新左侧列表就能看到表了 - 也可以在Sequel Pro连接设置里直接填写「数据库」字段为
organiser,登录后直接进入目标库
5. 适配MySQL 8.0认证插件(针对旧版Sequel Pro)
如果Sequel Pro版本较老,可能不支持MySQL 8.0默认的caching_sha2_password认证插件,需要修改root用户的认证方式:
进入容器MySQL后执行:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的DB_PASSWORD'; FLUSH PRIVILEGES;
内容的提问来源于stack exchange,提问作者rsax
相关产品推荐
相关产品推荐

