2016-08-18 62 views
0

您好我想創建的碼頭工人MySQL數據庫,這裏是我的代碼泊塢窗MySQL錯誤1049(42000):未知的數據庫「用戶」

在start.sh

#!/bin/sh 

echo "Starting DB..." 
docker run --name db -d \ 
    -e MYSQL_ROOT_PASSWORD=123 \ 
    -e MYSQL_DATABASE=users -e MYSQL_USER=root -e MYSQL_PASSWORD=123 \ 
    -p 3306:3306 \ 
    mysql:latest 

echo "Waiting for DB to start up..." 
docker exec db mysqladmin --silent --wait=30 -uroot ping || exit 1 

echo "Setting up initial data..." 
docker exec -i db mysql -uroot users < setup.sql 

和設置.SQL

create table users (
    user_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    username VARCHAR(100) NOT NULL, 
    department VARCHAR(100), 
    name  VARCHAR(100), 
    access_token VARCHAR(30) 
    ); 

insert into users (username, department, name, access_token) values ('bzh01', 'Research and Development One', 'Mario1', NULL); 
在終端

,這是結果:

$ bash start.sh 
Starting DB... 
c7a066b70fa4ad3e02acc3165cfe34ce6a48964cb1190df399404b728cb6059f 
Waiting for DB to start up... 
mysqld is alive 
Setting up initial data... 
ERROR 1049 (42000): Unknown database 'users' 
+1

格式應該是'的mysql -u根database' 。在你的情況下,用戶被解釋爲數據庫名稱。首先創建數據庫,然後創建表。 –

+0

所以我加了'CREATE DATABASE users;'在setup.sql的開頭,但是錯誤仍然發生 – tmvnty

+0

是完全一樣的錯誤? –

回答

0

好吧,我終於解決了這個問題,但方式稍有不同。

在我Dockerfile數據庫:

FROM mysql 

ENV MYSQL_ROOT_PASSWORD root 
ENV MYSQL_DATABASE users 
ENV MYSQL_USER root_user 
ENV MYSQL_PASSWORD abcd123 

ADD setup.sql /docker-entrypoint-initdb.d 

,然後運行泊塢窗,compose.yml搭建`泊塢窗exec`線

version: '2' 
services: 
    app: 
    build: ./app 
    volumes: 
     - "./app:/src/app" 
    ports: 
    - "3030:3000" 
    depends_on: 
    - db 
    environment: 
    - DATABASE_HOST=db 
    db: 
    build: ./test-database 
相關問題