部署目录:sheng的学习笔记-部署-目录-CSDN博客
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
出现如下图所示表示成功
-
创建一个用户,并授权
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 ;
参考
Mac如何安装Oracle?Mac如何配置Docker?手把手教你配置Docker并配置Oracle_oracle mac-CSDN博客
Docker 如何安装 MySQL 并实现远程连接 - 知乎