sheng的学习笔记-docker部署数据库oracle,mysql,支持windows和mac
用docker安装oracle,在macbook中用DBeaver连接成功数据库。有oracle和mysql数据库,支持windows 7和mac系统
docker基础知识可参考 sheng的学习笔记-docker部署,原理图,命令,用idea设置docker
目录
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博客
更多推荐
所有评论(0)