Linux搭建SQLserver数据库和Orical数据库

搭建标题中的两个数据库,同样采用docker的搭建方式,说时候docker实在是好用,搭建起来的服务完全一个个的独立,相互之间没有任何影响,镜像很多都是现成的,比较稳定的镜像,唯一的缺点其实就是占用存储空间大,但是这点其实也没有什么,毕竟现场存储价格便宜,使用简单方便,存储大些也是可以接受的。我搭建使用的服务器是Centos7。

1、前提

docker部署容器首先得安装好docker软件,然后检测是否安装了docker compose,有些版本用docker-compose,有些用docker compose,有些区别,需要自行去确定。然后确定docker源是否可用,现在好多源都不能用了,需要寻找一个可用的docker源,如果docker源不可用,那么到时候拉取镜像的时候就会失败。

2、docker-compose文件

按照如下的方式编辑好docker compose的yml文件,内容如下所示:docker-compose.yml

bash 复制代码
services:
  # Oracle 服务配置
  oracle:
    image: gvenzl/oracle-xe:18.4.0  # 使用轻量级的Oracle XE版本
    container_name: oracle_db
    network_mode: bridge
    user: "54321:54321"
    environment:
      - ORACLE_PASSWORD=jelly!123  # SYS, SYSTEM和PDBADMIN用户的密码
      - ORACLE_DATABASE=ORCLCDB  # 数据库名称
      - ORACLE_PDB=ORCLCDB1  # 可插拔数据库名称
    ports:
      - "1521:1521"  # Oracle默认端口
      - "5500:5500"  # EM Express端口
    volumes:
      - ./oracle_data:/opt/oracle/oradata  # 数据持久化卷
    restart: unless-stopped

  # SQL Server 服务配置
  sqlserver:
    image: mcr.microsoft.com/mssql/server:2019-latest
    container_name: sqlserver_db
    network_mode: bridge
    user: root
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=jelly!123  # 密码必须符合复杂性要求
      - MSSQL_PID=Express  # 使用Express版本,可选:Developer, Enterprise等
    ports:
      - "1433:1433"  # 映射主机端口到容器端口
    volumes:
      - ./sqlserver_data:/var/opt/mssql  # 数据持久化卷
    restart: unless-stopped  # 除非手动停止,否则总是重启容器

从yml文件可以看到我两个数据库的登录密码都是jelly!123,后面在验证数据的时候就使用该密码进行数据的连接和登录测试。

3、创建容器

根据上面的yml文件,在同一级别目录创建两个文件夹,分别为oracle_data和sqlserver_data,然后使用命令将两个目录的权限置为777,命令操作如下:

bash 复制代码
chmod -R 777 oracle_data
chmod -R 777 sqlserver_data

上面的操作是为了让映射的目录到时候有读写权限,测试为了方便设置成777,如果是生产环境根据实际情况设置成755或者其他权限,也需要保证容器到时候对映射目录有读写权限。然后再yml文件的的同级目录下面执行命令:docker compose up -d即可创建容器,创建容器需要拉取镜像,可能比较慢,可能会失败,如果失败排查docker镜像源是否可以正常访问。

运行完成后入下面所示,可以看到对应的镜像和运行的容器

对应的镜像:可以看到这两个镜像都比较大,大小都是上G

运行的容器:

4、验证数据库

如果上面创建容器正常的话就可以使用数据库工具或者写个脚本代码连接数据库看数据库是否可以正常连接,我使用的是数据库工具,用的是DBeaver,

4.1 验证sqlserver数据库:

按照上面的配置信息连接配置,ip地址是你宿主机的ip地址,密码就是用yml文件配置的密码,用户名填sa而不是yml文件的root,很奇怪,估计是该数据库自己的特性,如果有同学知道为什么可以子啊评论区留言,指导指导。配置好后,点击左边的测试连接:如果连接正常则会显示如下界面:

4.2 验证oracal数据库

验证也是使用DBeaver,使用如下的配置连接:

用户名使用的是system,估计和上面的sqlserver一样,都是默认的账户,配置好后,点击左边的测试连接,如果配置正常,会有如下的弹窗信息:

到此两个数据库的容器创建和连接测试都完成了,可以进行数据库的使用了。

相关推荐
陈天伟教授33 分钟前
关系数据库-07. 关系操作
数据库·达梦数据库·国产数据库
zzhongcy35 分钟前
复合索引 (item1, item2, item3 ) > (?, ?, ?) 不起作用,EXPLAIN 后type=ALL(全表扫描)
android·数据库
Elastic 中国社区官方博客39 分钟前
Elastic:DevRel 通讯 — 2026 年 1 月
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
可观测性用观测云41 分钟前
AWS RDS 可观测性最佳实践
数据库
程序员小白条41 分钟前
面试 Java 基础八股文十问十答第八期
java·开发语言·数据库·spring·面试·职场和发展·毕设
汗流浃背了吧,老弟!1 小时前
向量数据库在RAG中的非必需场景及替代方案
数据库
brevity_souls1 小时前
SQL 中 BETWEEN 和 IN 的区别
数据库·sql
代码AI弗森2 小时前
n8n 专题:从“自动化脚本”到“可视化工作流引擎”(自建、节点、Webhook、生产部署)
运维·自动化
产幻少年2 小时前
redis位图
数据库·redis·缓存
oMcLin2 小时前
如何在 Ubuntu 22.04 LTS 上部署并优化 Magento 电商平台,提升高并发请求的响应速度与稳定性?
linux·运维·ubuntu