zoukankan      html  css  js  c++  java
  • [Docker] Integrate a MySQL Docker Container Into an Application

    Starting up our server and running the curl command curl localhost:3000/health, we find that we get an error. Our server is complaining about us not having a database. Since this is a fresh install, we have no data at all. SQL comes with a file called init.sql inside of your db folder that will create a database, add the necessary tables for our application, and prepopulate the table with a single entry. We just have to put it in the folder that MySQL will use to populate the database!

    In this case, any .sql file in the /docker-entrypoint-initdb.d folder will be executed against our MySQL server as soon as the container is started. If there were any .sh file in there, they would also be automatically executed.

    in db/init.sql:

    create database if not exists images;
    grant select, insert, update, delete on images.* to 'user'@'%';
    use images;
    create table images( id INT AUTO_INCREMENT PRIMARY KEY, caption VARCHAR(100), filename VARCHAR(255) );
    insert into images(caption, filename) values("Hello", "hello-caption.gif");
    

    Locate db folder.

    Then run:

    docker run -p 3306:3306 -d --name k8scourse-db -e MYSQL_USER=user -e MYSQL_PASSWORD=mysql -e MYSQL_ROOT_PASSWORD=root --rm -v $(pwd)/init.sql:/docker-entrypoint-initdb.d/init.sql mysql:5.7 
    

    We added -v $(pwd)/init.sql:/docker-entrypoint-initdb.d/init.sql

    A volume file which located in db/init.sql, copy file to /docker-entrypoint-initdb.d/init.sq.

    Then mysql will automatically init table according to init.sql file

  • 相关阅读:
    Spring Bean的生命周期
    Java中的Object类
    Java线程池七个参数
    ROS 第五讲 在模拟器中构建第一个机器人
    ROS 第四讲 让小车在RViz与Gazebo模拟器中跑起来
    ROS 第三讲 操控小乌龟
    ROS 第二讲 基本操作
    ROS 第一讲 引入
    自然语言处理(二) 新词发现或非监督词典构建
    递归找到一个复杂对象中的某个值和它的最小层级
  • 原文地址:https://www.cnblogs.com/Answer1215/p/14350713.html
Copyright © 2011-2022 走看看