![](/img/trans.png)
[英]How to execute a MySQL query with a python script using the MySQLdb library?
[英]How to execute query using script in MySQL Docker image?
我試圖為用戶提供一個web
界面,用戶可以在其中編寫query
,然后在server
上執行該query
。
我正在使用以下帶有latest tag
MySQL
docker
鏡像,即mysql:latest
https://hub.docker.com/_/mysql/
所以我使用此命令來運行docker映像
docker run -it --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -v /root/ServerCode/:/usercode mysql /bin/bash
我的root/ServerCode
目錄包含一個我想用於運行mysql
服務器和用戶query
的script
。
我的script
是
#!/bin/bash
set -e
/etc/init.d/mysqld start
它給我error
bash: /etc/init.d/mysqld: No such file or directory
我也嘗試過使用
service mysqld start
它也給error
mysqld: unrecognized service
編輯:
#!/bin/bash
set -e
exec 1> $"/usercode/logfile.txt"
exec 2> $"/usercode/errors"
# These output and error files are in mounted folder which i check after running script
/etc/init.d/mysqld start // run sql server here
#here i want to run that query and then get out of conatiner `
僅當mysqld為參數時,entyrypoint scipt才執行initdb; 在您的情況下,它會看到bash ,因此會跳過initdb並僅使用其參數運行bash。
如果您只是嘗試在mysql運行后運行一些安裝腳本,您是否看過/docker-entrypoint-initdb.d/ ?
創建一個docker-compose.yml
version: '2'
services:
db:
image: mysql
container_name: mysql
restart: always
volumes:
- /var/db/startuphry/mysql:/var/lib/mysql
- ./conf/my.cnf:/etc/mysql/conf.d/settings.cnf
- ./conf/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
ports:
- "${MYSQL_PORT}:3306"
創建一個conf文件夾,將my.cnf文件添加到其中
[mysqld]
local-infile=0
在conf文件夾中創建文件夾docker-entrypoint-initdb.d並在此文件夾中創建所有sql文件
樹看起來像這樣
|____docker-compose.yml
|____conf
|___my.cnf
|___docker-entrypoint-initdb.d
|___one.sql
|___two.sql
您可以在其中放置任何.sh文件或.sql文件,它們將在容器外部提供mysql服務之前運行/導入。
嘗試在mysql docker容器中運行“ /etc/init.d/mysqld start”。 / root / server是主機路徑。 Mysql已安裝在容器中而不是主機中。 請不在主機上運行“ /etc/init.d/mysqld start”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.