安装 mysql 5.7
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
docker pull mysql:8.0.18
如果是此句, 则是拉取最新版本 $ docker pull mysql:latest
查看对应IMAGE ID 为 ed1ffcb5eff3
docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8.0.18 ed1ffcb5eff3 6 months ago 456MB
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 ed1ffcb5eff3
进入 CONTAINER ID 然后加载 bash
docker exec -it mysql-test bash
或者一步到位
docker exec -it mysql-test mysql -uroot -p123456
mysql 设置远程登录
- 登录 mysql 账号
- 修改 root 用户登录地址
- 修改 root 用户密码加密方式
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;
-- 可以添加远程登录用户 CREATE USER 'xiaobudian'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'xiaobudian'@'%';
现在可以任意客户端尝试登录
mysql -uroot -p123456 -h 117.xxx.xx.xx
117.xxx.xx.xx 为对应你的 IP 地址
安装 mongoDB
下载 mongo 4 最新版本
docker pull mongo:4
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:
docker exec -it my_mongo bash
The MongoDB Server log is available through Docker's container log:
服务器日志可以通过 Docker 的容器日志获得:
$ docker logs some-mongo
如何开启 mongodb
的容器的远程连接
进入容器内部,然后修改 /etc/mongod.conf.orig
配置文件
# 更新源 & 安装 vim apt-get update && apt-get install vim # 修改 mongo 配置文件 vim /etc/mongod.conf.orig
注释掉# bindIp: 127.0.0.1
或者改成bindIp: 0.0.0.0
即可开启远程连接
接着使用以下命令添加用户和设置密码,并且尝试连接。
# 连接 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
$ 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.
参考
数据库篇丨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