原因

在工作中需要验证各数据库下的查询语句,故在此记录Docker中安装数据库的步骤,以防遗忘,也为后续发生意外时可快速对照安装 🥲。

mysql安装

拉取镜像

docker pull daocloud.io/library/mysql:5.7.5-m15

查看镜像

docker images

结果:

docker安装最新mysql docker 安装数据库_oracle

修改REPOOSITORY名称

⚠️ 非必须,该条为个人习惯

docker tag 6448ea6ff3b5 mysql:5.7.5-m15
# 6448ea6ff3b5为镜像ID,mysql为修改后的REPOOSITORY,5.7.5-m15为镜像标签(版本)
# 该镜像REPOOSITORY更改前名称为:daocloud.io/library/mysql,太长了(强迫症发作)

修改后:

docker安装最新mysql docker 安装数据库_docker_02

启动一个容器

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.5-m15
# mysql-zlh 指定了该容器的名字(可自己随意更换)
# -p指定开放端口3306进行映射(-P是随机的端口映射,后面就不需要加端口号,直接是 --name mysql-zlh -P -e XXX)
# 123456 指定了 root 用户的密码(可自己随意更换)

查看运行中容器

docker ps

结果:

docker安装最新mysql docker 安装数据库_oracle_03

进入容器

docker exec -it mysql-test bash 
# docker exec -it mysql env LANG=C.UTF-8 /bin/bash
# 为了解决docker内运行mysql无法输入中文的问题

命令行进入mysql

mysql -uroot -p123456
# 用户名为root,密码为123456

结果:

docker安装最新mysql docker 安装数据库_oracle_04

输入SQL语句

docker安装最新mysql docker 安装数据库_docker安装最新mysql_05


🐷 在该命令行页面exit 2次才返回原服务器终端

可视化工具连接mysql

我用的是datagrip

docker安装最新mysql docker 安装数据库_mysql_06


🇨🇳mysql常用命令后续补充~

sql server安装

拉取镜像

docker pull mcr.microsoft.com/mssql/server:latest

查看镜像

docker images

修改REPOOSITORY名称

⚠️ 非必须,该条为个人习惯

docker tag 镜像id sqlserver:latest

启动一个容器

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Pass@w0rd" -p 1433:1433 --name sqlserver-zlh -d sqlserver:latest
# 密码一定要设置强密码,不然容器会打开就挂掉

查看运行中容器

docker ps

结果:

docker安装最新mysql docker 安装数据库_mysql_07

进入容器

docker exec -it sqlserver-zlh /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P Pass@w0rd

结果:

docker安装最新mysql docker 安装数据库_docker_08


出现1> 则可直接执行sql命令。

⚠️ 需要注意的是,go结尾才能正确执行。

🐷 在该命令行页面exit 1次则可返回原服务器终端

可视化工具连接sql server

docker安装最新mysql docker 安装数据库_oracle_09

oracle安装

拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

⚠️ 镜像比较大,下载时间些微会长一些,6.85G

查看镜像

docker images

修改REPOOSITORY名称

⚠️ 非必须,该条为个人习惯

docker tag 镜像id oracle:latest

启动一个容器

docker run -d -p 1521:1521 --name oracle-zlh oracle:latest

查看运行中容器

docker ps

进入容器

docker exec -it oracle-zlh /bin/bash

连接数据库及前置操作

sqlplus /nolog

⚠️ 此时会报错“command not found”,不要着急,往下走

切换到root

su - root
# 密码:helowin

配置环境变量

vi /etc/profile

编辑该文件,在最下方输入以下数据后保存

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH

生效环境变量

source /etc/profile

创建软链接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

切换到oracle用户

su - oracle

连接数据库及后置操作

连接数据库

sqlplus /nolog

以超级管理员的身份登陆

conn /as sysdba

修改用户密码

修改system
alter user system identified by system;
修改sys
alter user sys identified by sys;

创建新用户

create user test identified by 123456;
# 用户名为test,密码为123456(可自行修改)

为该用户赋予权限

grant connect,resource,dba to test;
# 赋予权限给用户test

🐷 以上是首次进入oracle的过程,下面给出后续进入步骤

docker exec -it oracle-zlh /bin/bash

# 进入容器后
su - root  # 密码 helowin
su  - oracle
sqlplus /nolog

# 连接数据库后
conn /as sysdba

🐷 需要exit3次才可回到服务器终端页面

可视化工具连接

docker安装最新mysql docker 安装数据库_数据库_10

疑问

目前数据库返回数据中文乱码,待我查询相关文档后再作补充~如有大神直接告知也可
不同数据库下的sql命令后续我也会总结。