sheng的学习笔记-docker部署数据库oracle,mysql,支持windows和mac

部署目录:sheng的学习笔记-部署-目录-CSDN博客

docker基础知识可参考   sheng的学习笔记-docker部署,原理图,命令,用idea设置docker

目录

docker安装数据库

mac版本

安装oracle

下载oracle镜像

创建容器,运行Oracle 

来查看容器的运行情况

调试Oralce 

创建一个用户,并授权

测试数据库

创建表测试 

安装mysql

下载mysql镜像

创建容器,运行mysql

来查看容器的运行情况

调试mysql

创建一个用户,并授权

测试数据库

创建表测试

windows 7版本

安装mysql

下载mysql镜像

创建容器,运行mysql

来查看容器的运行情况

调试mysql

创建一个用户,并授权

测试数据库

 创建表测试

参考


docker安装数据库

  • mac版本

  • 安装oracle

  • 下载oracle镜像

打开终端,输入

docker search oracle

我这里下载的是 oracle-xe-11g,在终端中输入

 sudo docker pull deepdiver/docker-oracle-xe-11g

来拉取镜像,等下载好了以后,输入

docker images

来查看镜像,可以看到刚下载的镜像

  • 创建容器,运行Oracle 

sudo docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g

来创建容器并运行,其中1521:1521中前面的1521表示本机的端口号,后面的1521表示Docker中映射的端口号(!!!注意:后面那个1521端口号一定不能更改,只能根据自己的需求更改前面的端口号,作者建议不要更改,因为Oracle没有Mac版本所以一般不会出现端口冲突)

  • 来查看容器的运行情况

输入

docker ps

然后复制id,我这里的ID是640f1e53bb05,然后在终端中输入

sudo docker exec -it 640f1e53bb05 /bin/bash 

进入shell容器,这里-it后面的就是我们刚刚复制的id

  • 调试Oralce 

进入shell容器以后输入

sqlplus system/oracle

出现如下图所示表示成功

  • 创建一个用户,并授权
create user JYL identified by a;
我的是 create user lzs1 identified by lzs;
grant connect,resource to lzs1;

 
这里JYL可以替换成自己的用户名,a可以替换成自己的密码;这两个东西之后链接数据库的时候需要用到。
提示User created.说明用户创建成功。
使用select * from all_users;就可以看到刚刚创建好的用户。
然后我们为这个用户授权grant connect,resource to JACK;,注意这里的用户名必须全部大写。
提示Grant succeeded.之后说明授权成功。

  • 测试数据库

我用的是DBeaver连接数据库

如果第一次下载,会要求安装驱动

 注意:这里的服务名是:XE,与Windows有区别,填写完所有信息以后点击左下角的“测试连接”,显示连接成功以后点击右下角的确定即可

  • 创建表测试 
CREATE TABLE student (
    id NUMBER(5) PRIMARY KEY,
    name VARCHAR2(30),
    age NUMBER(3) CHECK (age >= 0 AND age <= 100)
);
INSERT INTO STUDENT s (id,name,age) values(1,'zhangsan',20)

SELECT * FROM student;

   

安装mysql

  • 下载mysql镜像

打开终端,输入

docker search mysql

终端输入

docker pull mysql:latest

来拉取镜像,等下载好了以后,输入

docker images

来查看镜像,可以看到刚下载的镜像

  • 创建容器,运行mysql

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql

–name:容器名,此处命名为mysql
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射 主机3306端口 到 容器的3306端口
-d:后台运行容器,保证在退出终端后容器继续运行

  • 来查看容器的运行情况

输入docker ps

复制id,我这里是24624966d8c8,

输入

docker exec -it 24624966d8c8 /bin/bash

这将打开 Bash 终端,并把你放在正在运行的 MySQL 容器中。在容器中,您可以执行各种 MySQL 命令,包括创建用户、授权和配置等 

  • 调试mysql

接下来,我们需要登录 MySQL 并进行一些配置。使用以下命令打开 MySQL:

mysql -u root -p

输入密码,密码是创建容器的命令中的密码

  • 创建一个用户,并授权

然后输入您之前设置的密码。登录成功后,我们需要创建一个新用户,并授予该用户适当的权限。使用以下命令创建名为 `remote_user` 的新用户:

CREATE USER 'lzs_mysql'@'%' IDENTIFIED BY 'your_password';

其中,`remote_user` 是您自己设置的用户名,`your_password` 是该用户的密码。`%` 是通配符,表示任何 IP 地址都可以连接到 MySQL 服务器。接下来,使用以下命令为该用户授予适当的权限 

GRANT ALL ON *.* TO 'lzs_mysql'@'%'; 

此命令授予 `remote_user` 用户对 MySQL 服务器上所有数据库和表的完全访问权限。

  • 测试数据库

有报错

 Public Key Retrieval is not allowed:不允许进行公钥检索

解决方案:

在编辑连接中找到allowPublicKeyRetrieval 设置成TRUE

 

点击测试连接,可以看下能否连接成功

  • 创建表测试
CREATE TABLE student (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    age INT UNSIGNED NOT NULL
);
INSERT INTO student(name,age) values('zhangsan',20)
select * from student ;

windows 7版本

安装mysql

  • 下载mysql镜像

打开终端,终端输入

docker pull mysql:latest

来拉取镜像,等下载好了以后,输入

docker images

来查看镜像,可以看到刚下载的镜像

  • 创建容器,运行mysql

docker run --name mysql -p 3306:3306 -v /d/db/mysql/conf://etc/mysql -v /d/db/mysql/logs://var/log/mysql -v /d/db/mysql/data://var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql

–name:容器名,此处命名为mysql
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射 主机3306端口 到 容器的3306端口
-d:后台运行容器,保证在退出终端后容器继续运行

-v:用于做映射,将mysql的数据映射到准备的文件夹,注意:

  • 虽然是windows,但不可 用D:\这种有冒号的
  • 不可以用\,要用/,
  • /var不行,需要//var,因为/var会找windows的目录,但这里需要挂在的是docker内部目录
  • 来查看容器的运行情况

输入docker ps

复制id,我这里是08e1361b0db8,

输入

docker exec -it 08e1361b0db8 bash

这将打开 Bash 终端,并把你放在正在运行的 MySQL 容器中。在容器中,您可以执行各种 MySQL 命令,包括创建用户、授权和配置等 

  • 调试mysql

接下来,我们需要登录 MySQL 并进行一些配置。使用以下命令打开 MySQL:

mysql -u root -p

输入密码,密码是创建容器的命令中的密码

注意,这里别用git bash写,要用cmd写

  • 创建一个用户,并授权

然后输入您之前设置的密码。登录成功后,我们需要创建一个新用户,并授予该用户适当的权限。使用以下命令创建名为 `remote_user` 的新用户:

CREATE USER 'lzs_mysql'@'%' IDENTIFIED BY 'your_password';

其中,`remote_user` 是您自己设置的用户名,`your_password` 是该用户的密码。`%` 是通配符,表示任何 IP 地址都可以连接到 MySQL 服务器。接下来,使用以下命令为该用户授予适当的权限 

GRANT ALL ON *.* TO 'lzs_mysql'@'%'; 

此命令授予 `remote_user` 用户对 MySQL 服务器上所有数据库和表的完全访问权限。

  • 测试数据库

此部分参考mac的 安装 mysql(在上面),这是配置,注意,在windows(我的是windows 7)中,是使用virtual box虚拟机做的docker,数据库是在这里面,所以服务器地址不能是本机,是虚拟机的ip,否则会连接不上

  •  创建表测试
CREATE TABLE student (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    age INT UNSIGNED NOT NULL
);
INSERT INTO student(name,age) values('zhangsan',20)
select * from student ;

参考

Mac如何安装Oracle?Mac如何配置Docker?手把手教你配置Docker并配置Oracle_oracle mac-CSDN博客

Docker 如何安装 MySQL 并实现远程连接 - 知乎

windows系统使用Docker搭建MySQL服务|江阴雨辰互联 

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用Docker部署Oracle数据库。以下是步骤和方法: 1. 首先,您需要下载Oracle数据库Docker镜像。根据引用提到的命令,您可以使用以下命令从阿里云的镜像仓库获取Oracle XE 11g镜像: ``` docker pull registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g ``` 2. 下载镜像后,您可以使用以下命令在Docker运行Oracle数据库容器: ``` docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true --name oracle -v /dockerOracleData:/dockerOracleData registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g ``` 这个命令将在后台运行一个名为"oracle"的容器,并将Oracle数据库的SSH端口映射到主机的49160端口,将Oracle数据库的监听端口映射到主机的49161端口。同时,它还设置了允许远程连接的环境变量。 3. 在容器运行后,您可以使用SSH连接到容器并访问Oracle数据库的命令行。您可以使用如下命令连接到容器: ``` ssh -p 49160 root@localhost ``` 登录密码默认为"root"。 4. 连接到容器后,您可以使用Oracle数据库的命令行工具(如SQL*Plus)来管理和查询数据库。您可以使用如下命令连接到数据库: ``` sqlplus sys/oracle as sysdba ``` 这将使用sys用户登录到数据库,并要求您输入sys用户的密码。 5. 如果您需要在外部连接到Oracle数据库,您可以使用主机的IP地址和映射的端口来连接。默认情况下,容器的1521端口映射到主机的49161端口。您可以使用以下连接字符串来连接数据库: ``` hostname:port:SID ``` 其,hostname是主机的IP地址,port是映射的端口,SID是数据库的系统标识符。默认情况下,Oracle XE 11g的SID是XE。 请注意,以上步骤和方法仅适用于Docker部署Oracle数据库。更多详细信息和其他配置选项,请参考引用提供的链接和引用提供的默认用户名和密码。 参考资料: xe 版Oracle默认的数据库实例是xe(数据库名),用户,密码-------sys/oracle system/oracle 下载慢的话:docker pull registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g docker run -d -p 49160:22 -p 49161:1521 -e ORACLE_ALLOW_REMOTE=true --name oracle -v /dockerOracleData:/dockerOracleData registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g https://blog.csdn.net/edutech_wang/article/details/120176447 https://www.cnblogs.com/MrXiaoAndDong/p/docker_oracle.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值