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

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

相关推荐
minji...12 小时前
MySQL数据库 (八) MySQL表的基本查询(下),truncate、group by、聚合函数、分组聚合统计
数据库·mysql·聚合函数·update·分组聚合统计
无足鸟ICT12 小时前
【RHCA+】查找与替换
linux
乐世东方客12 小时前
备份脚本记录(binlog文件+mysql+mongo)
android·数据库·mysql
暴力求解12 小时前
MySQL---数据类型
数据库·mysql
Nturmoils12 小时前
分页别写太顺手,LIMIT 背后还有排序和边界
数据库·后端
小饕12 小时前
RAG学习之【向量数据库】Milvus 从入门到精通:索引、检索、混合搜索一篇打通(RAG 必备)
数据库·人工智能·学习·milvus
华奥系科技12 小时前
汛期城市内涝治理:智慧水务如何重塑防汛“安全感”?
大数据·运维·人工智能
IT WorryFree12 小时前
三套 Zabbix7.4 API 可直接复制 params 模板
运维·服务器·网络
RisunJan12 小时前
Linux命令-pmap(进程内存映射报告工具)
linux·服务器·网络
郝学胜-神的一滴12 小时前
CMake 017:彩色日志输出实战
linux·c语言·开发语言·c++·软件工程·软件构建·cmake