Macbook M1通过Colima/Docker运行Oracle本地数据库遇连接问题求助
M1 Mac上Colima+Docker部署Oracle数据库连接问题排查
一、确认容器及Oracle服务状态
- 执行
docker ps查看容器运行状态,确保状态为Up;若容器已退出,执行docker logs 24e6894e0c58查看启动报错日志 - 进入容器验证Oracle服务状态:
在SQLPlus中执行:docker exec 24e6894e0c58 sqlplus / as sysdba
确认输出为select status from v$instance;OPEN
二、核对SQL Developer连接参数
Oracle Free容器的默认连接配置需注意:
- 主机名:填
localhost(Colima默认端口映射到本地),若Colima用自定义网络,可通过colima ls获取Colima实例IP填入 - 端口:
1521(已做端口映射) - 服务名/SID:默认服务名为
FREEPDB1,SID为FREE,优先使用服务名连接 - 用户名:
test(通过createAppUser创建的用户) - 密码:
tespass(注意命令中拼写,避免输入错误)
三、检查网络连通性与端口映射
- 确认Colima架构为x86_64:执行
colima status查看架构信息,若不符则重启Colima:colima stop && colima start --arch x86_64 --memory 6(增加内存分配,满足Oracle启动需求) - 检查本地1521端口占用:执行
lsof -i :1521,若被其他程序占用,修改容器启动命令为docker run -d -p 1522:1521 -e ORACLE_PASSWORD=tespass gvenzl/oracle-free,并在SQL Developer中使用1522端口连接 - 测试本地到容器的连通性:执行
nc -zv localhost 1521,若不通则重启Colima重试
四、验证App用户创建有效性
- 进入容器PDB的SQLPlus:
docker exec -it 24e6894e0c58 sqlplus sys/tespass@FREEPDB1 as sysdba - 查询用户是否存在:
select username from dba_users where username='TEST'; - 若用户不存在,重新执行创建命令并指定PDB:
docker exec 24e6894e0c58 createAppUser test tespass --pdb FREEPDB1
五、其他排查方向
- 确认SQL Developer版本适配M1芯片,或用JDBC连接字符串测试:
jdbc:oracle:thin:@localhost:1521/FREEPDB1,用户名test,密码tespass - Oracle Free容器启动需初始化时间,若刚启动容器,等待5-10分钟后再尝试连接
内容的提问来源于stack exchange,提问作者Catarina Nogueira
相关产品推荐
相关产品推荐

