前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker 下安装 mysql / mongoDB / postgres

docker 下安装 mysql / mongoDB / postgres

作者头像
acc8226
发布2022-05-17 17:15:23
5820
发布2022-05-17 17:15:23
举报
文章被收录于专栏:叽叽西叽叽西

安装 mysql 5.7

代码语言:javascript
复制
docker pull mysql:5.7

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=feitangfei mysql:5.7

# 5.7的这个版本竟然 -u 和 -p 之间不能加空格,我也是醉了
docker exec -it mysql-test mysql -uroot -pfeitangfei 

安装 mysql 8.0.18

代码语言:javascript
复制
docker pull mysql:8.0.18

如果是此句, 则是拉取最新版本 $ docker pull mysql:latest

查看对应IMAGE ID 为 ed1ffcb5eff3

代码语言:javascript
复制
docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               8.0.18              ed1ffcb5eff3        6 months ago        456MB
代码语言:javascript
复制
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 ed1ffcb5eff3

进入 CONTAINER ID 然后加载 bash

代码语言:javascript
复制
docker exec -it mysql-test bash

或者一步到位

代码语言:javascript
复制
docker exec -it mysql-test mysql -uroot -p123456

mysql 设置远程登录

  1. 登录 mysql 账号
  2. 修改 root 用户登录地址
  3. 修改 root 用户密码加密方式
代码语言:javascript
复制
mysql -uroot -p123456

use mysql;

-- 查询当前数据库相关信息
select host,user,authentication_string,plugin from user;

-- 若不存在 `root@%`  将root用户设置为所有地址可登录,原来是localhost表示只用本机可登录
UPDATE USER SET host = '%' WHERE user = 'root';
-- 并刷新权限
flush privileges;

--将用户root密码设置为永不过期
mysql> alter user 'root'@'%' identified by '123456' password expire never;
Query OK, 0 rows affected (0.01 sec)

--将root用户密码加密方式改为mysql_native_password ,上面查到root用户密码的加密方式为caching_sha2_password 
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.00 sec)

--刷新权限,在别的机器上即可登录
mysql> flush privileges;
代码语言:javascript
复制
-- 可以添加远程登录用户
CREATE USER 'xiaobudian'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'xiaobudian'@'%';

现在可以任意客户端尝试登录

代码语言:javascript
复制
mysql  -uroot -p123456 -h 117.xxx.xx.xx

117.xxx.xx.xx 为对应你的 IP 地址

安装 mongoDB

下载 mongo 4 最新版本

代码语言:javascript
复制
docker pull mongo:4
代码语言:javascript
复制
docker run -itd \
--name my_mongo \
-p 27017:27017 mongo:4 \
--auth \
--bind_ip_all

-it 表示交互 -d 表示后台运行 --name 取个名字 -p 指定一个端口映射 --auth:需要密码才能访问容器服务。

mongo:4 --auth --bind_ip_all 则是mongo的一些参数

The docker exec command allows you to run commands inside a Docker container. The following command line will give you a bash shell inside your mongo container: Docker exec 命令允许您在 Docker 容器中运行命令。 下面的命令行将在 mongo 容器中为您提供一个 bash shell:

代码语言:javascript
复制
docker exec -it my_mongo bash

The MongoDB Server log is available through Docker's container log: 服务器日志可以通过 Docker 的容器日志获得:

代码语言:javascript
复制
$ docker logs some-mongo

如何开启 mongodb 的容器的远程连接

进入容器内部,然后修改 /etc/mongod.conf.orig 配置文件

代码语言:javascript
复制
# 更新源 & 安装 vim
apt-get update && apt-get install vim

# 修改 mongo 配置文件
vim /etc/mongod.conf.orig

注释掉# bindIp: 127.0.0.1 或者改成bindIp: 0.0.0.0 即可开启远程连接

接着使用以下命令添加用户和设置密码,并且尝试连接。

代码语言:javascript
复制
# 连接 admin 这个 db
docker exec -it my_mongo mongo admin

# 创建一个名为 zhangsan,密码为 222333 的用户。
db.createUser({ user:'zhangsan',pwd:'222333',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});

# 尝试使用上面创建的用户信息进行连接。
db.auth('zhangsan', '222333')

通过 robo 3T 已经可以外网访问了.

安装 pg

start a postgres instance

代码语言:javascript
复制
$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

The default postgres user and database are created in the entrypoint with initdb.

The postgres database is a default database meant for use by users, utilities and third party applications. postgresql.org/docs

参考

数据库篇丨MySQL8.0 设置远程访问权限(最佳实践)!!!_「IT大飞说」的博客-CSDN博客_mysql8开启远程连接 https://blog.csdn.net/xinpengfei521/article/details/80403965

Docker 安装 MySQL | 菜鸟教程 https://www.runoob.com/docker/docker-install-mysql.html

Docker 安装 MongoDB https://www.runoob.com/docker/docker-install-mongodb.html

Postgres - Official Image | Docker Hub https://hub.docker.com/_/postgres

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 mysql 5.7
  • 安装 mysql 8.0.18
  • mysql 设置远程登录
  • 安装 mongoDB
    • 如何开启 mongodb 的容器的远程连接
    • 安装 pg
    • start a postgres instance
    • 参考
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    http://www.vxiaotou.com