前言

最近,想部署一个自己的项目,鉴于自己的服务器是VPS(虚拟主机),配置也不够,就想到了用 docker 直接部署好了,这样既方便部署也方便不用的时候卸载或更新

然后本地搭建了环境,踩了一些坑,在这里记录一下

mysql 问题(初始化创建数据库不成功)

首先我是使用 docker-compose 来搭建我的服务的,配置如下:

mysql:
image: mysql:5.5
restart: always
# 构建容器
build: ./mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
volumes:
- ./mysql/db:/var/lib/mysql
ports:
- 3306:3306

所以第一次运行 docker-compose up 的时候没有加上密码(MYSQL_ROOT_PASSWORD配置),然后出于安全起见,我配置了root密码,然后关闭后,执行 docker-compose up,发现 mysql 容器的数据库并没有创建

查了下资料:https://github.com/docker-library/mariadb/issues/68

挂载的宿主主机的文件夹必须为空文件夹(.gitignore等隐藏文件不影响),如果里面有文件,就不会初始化数据库。

ps: mongo 创建不成功也可参考如上解决方法

node连接认证mongo问题

首先我的 docker-compose.yml 配置文件如下:

mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: gating
MONGO_INITDB_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
# 需要链接本地代码时
volumes:
- ./mongo/db:/data/db
ports:
- 27017:27017

我尝试了通过文档的认证连接,代码如下:

mongoose.connect('mongodb://user:pass@mongo/database');

ps: 这里能用 mongo 是因为我在 docker-compose 中指定了 mongo 容器的名字,在代码里使用 mongo 就表示 localhost:27017

连接失败,最后才发现是我缺少了一个配置 authSource,然后配置上了,最后终于连接上了我的mongo,可以愉快的开发部署了

const mongoose = require('mongoose')
mongoose.connect('mongodb://gating:123456@mongo/small_time?authSource=admin')

docker-compose mysql和node连接认证mongo问题的更多相关文章

  1. docker部署mysql Navicat远程连接

    docker部署mysql Navicat远程连接 docker search mysql   查看mysql镜像(是去dockerHub网站搜素镜像,遇到问题可以去该网站查看官方文档,纯英文文档估计 ...

  2. docker部署mysql 实现远程连接

    1. docker search mysql    # 查看mysql版本 2. docker pull mysql:5.7   # 拉取mysql 5.7 3. docker images  # 查 ...

  3. Docker安装MySQL并配置远程访问

    1.docker search mysql 查看mysql版本 2.docker pull mysql 要选择starts最高的那个name 进行下载 3.docker images 查看下载好的镜像 ...

  4. [phvia/dkc] Docker Compose 快速构建(LNMP+Node)运行环境

    快速构建(LNMP+Node)运行环境. dkc 在此作为 docker-compose 的缩写,你可以理解为 alias dkc=docker-compose 准备 安装 docker 选择1) 从 ...

  5. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

  6. (转)Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    http://www.ityouknow.com/springboot/2018/03/28/dockercompose-springboot-mysql-nginx.html 我知道大家这段时间看了 ...

  7. Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践 Spring Boot + Nginx + Mysql 是实际工作中 ...

  8. docker 安装mysql mongo

    Docker安装Mysql 1.拉取镜像 docker pull mysql/mysql-server 2.运行mysql docker run -d -p : --name [Name] [Imag ...

  9. 基于Docker Compose构建的MySQL MHA集群

    Docker MySQL MHA 基于Docker 1.13.1之上构建的MySQL MHA Docker Compose Project 可快速启动GTID模式下的MasterHA集群, 主用于My ...

随机推荐

  1. Gradle 多环境、多渠道打包

    最近项目从eclipse迁移到AS上,主要是为了使用gradle这个插件进行apk打包.毕竟程序员还是要与时俱进的.首先介绍下项目主要需求: 1.使用百度统计,需要对个平台的信息进行统计 2..api ...

  2. java ->基本数据类型与包装类的概述和转化

    基本类型 包装类概述 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需 ...

  3. Oracle用decode函数或CASE-WHEN实现自定义排序

    1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序.但排序规则是默认的,数字.时间.字符串等都有自己默认的排序规则.有时候需要按自己的想法来排 ...

  4. 一文带你学会国产加密算法SM4的vue实现方案

    前言 上篇文章我们介绍了国产SM4加密算法的后端java实现方案.没有看过的小伙伴可以看一下这篇文章. https://www.cnblogs.com/jichi/p/12907453.html 本篇 ...

  5. Python list列表修改元素

    Python 提供了两种修改列表(list)元素的方法,你可以每次修改单个元素,也可以每次修改一组元素(多个). 修改单个元素 修改单个元素非常简单,直接对元素赋值即可.请看下面的例子: nums = ...

  6. redis主从同步及手动处理故障

    redis主从同步 redis主库机器故障,手动切换主从库

  7. Django之MTV模式

    MTV与MVC+url控制器 MVC框架: ·         M:model.py  就是和数据库打交道用的,创建表等操作 ·         V:View  视图(视图函数:逻辑处理响应函数,ht ...

  8. oracle start with

    select * from t where 1=1 START WITH key_id=600 CONNECT BY PRIOR key_id = pid order by key_id desc

  9. Socket - TCP编程

    Socket是网络编程的一个抽象概念. 通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可 socket参数及常用功能 ...

  10. 如何快速全面掌握Kafka?这篇文章总结了

    Kafka 是目前主流的分布式消息引擎及流处理平台,经常用做企业的消息总线.实时数据管道,本文挑选了 Kafka 的几个核心话题,帮助大家快速掌握 Kafka,包括: Kafka 体系架构 Kafka ...