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

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

目录

docker安装数据库

mac版本

安装oracle

下载oracle镜像

创建容器,运行Oracle 

来查看容器的运行情况

调试Oralce 

创建一个用户,并授权

测试数据库

创建表测试 

安装mysql

下载mysql镜像

创建容器,运行mysql

来查看容器的运行情况

调试mysql

创建一个用户,并授权

测试数据库

创建表测试

windows 7版本

 安装oracle

下载oracle镜像

创建容器,运行Oracle 

来查看容器的运行情况

调试Oralce 

创建一个用户,并授权

测试数据库

创建表测试 

安装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

出现如下图所示表示成功

  • 默认的管理员用户名 sys  密码 oracle 作为dba登录
  • 创建一个用户,并授权
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版本

  •  安装oracle

  • 下载oracle镜像

打开终端,输入

docker search oracle

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

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

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

docker images

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

  • 创建容器,运行Oracle 

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是a6a3676c6a12,然后在终端中输入

docker exec -it a6a3676c6a12 /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连接数据库

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

 注意:主机的ip,应该是docker虚拟机的ip,而不是本机,填写完所有信息以后点击左下角的“测试连接”,显示连接成功以后点击右下角的确定即可

  • 创建表测试 
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 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服务|江阴雨辰互联

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐