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一样,都是默认的账户,配置好后,点击左边的测试连接,如果配置正常,会有如下的弹窗信息:

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

相关推荐
画中有画2 小时前
使用yolov8实现自动化脚本
运维·yolo·自动化
白帽小丑3 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Piko6144 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
JAVA面经实录9174 小时前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
Quincy_Freak5 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
万联WANFLOW7 小时前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构
2601_962683897 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程7 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_9 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
SkyWalking中文站9 小时前
认识 Horizon UI · AI Assistant:用日常语言查询你的可观测性数据
运维·监控·自动化运维