This Docker container provides a pre-configured MySQL Shell environment for interacting with MySQL databases. The container is built on Oracle Linux 9 Slim and includes the latest MySQL Shell tools for database administration, scripting, and management tasks.
docker run -it --rm \
-e MYSQL_HOST=localhost \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=admin \
-e MYSQL_PASSWORD=your_password \
vv0lll/mysql-shell
docker run --rm \
-e MYSQL_HOST=localhost \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=admin \
-e MYSQL_PASSWORD=your_password \
-e MYSQL_SCRIPT=/scripts/setup.sql \
-v /path/to/scripts:/scripts \
vv0lll/mysql-shell mysqlsh
docker run --rm \
-e MYSQL_HOST=localhost \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=admin \
-e MYSQL_PASSWORD=your_password \
-e MYSQLSH_SCRIPT=/scripts/admin.js \
-v /path/to/scripts:/scripts \
vv0lll/mysql-shell mysqlsh
| Variable | Description | Example |
|---|---|---|
MYSQL_HOST | MySQL server hostname or IP address | mysql1, 192.168.1.100 |
MYSQL_PORT | MySQL server port | 3306 |
MYSQL_USER | MySQL username for authentication | admin, root |
MYSQL_PASSWORD | MySQL password for authentication | your_secure_password |
| Variable | Description | Example |
|---|---|---|
MYSQL_SCRIPT | Path to SQL script file to execute | /scripts/schema.sql |
MYSQLSH_SCRIPT | Path to MySQL Shell script file to execute | /scripts/setup.js |
The container includes intelligent connection handling:
|| true)docker run --rm \
--network vv0lll_default \
-e MYSQL_HOST=mysql1 \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=${DB_MYSQL_ROOT_PASSWORD} \
-e MYSQL_SCRIPT=/data/0x1115.sql \
-v ./data:/data \
vv0lll/mysql-shell mysqlsh
docker run -it --rm \
--network vv0lll_default \
-e MYSQL_HOST=mysql1 \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=${DB_MYSQL_ROOT_PASSWORD} \
vv0lll/mysql-shell mysqlsh
Then in the MySQL Shell:
// Check cluster status
dba.getCluster().status()
// Add instance to cluster
dba.getCluster().addInstance('mysql2:3306')
Verify network connectivity:
docker run --rm --network vv0lll_default alpine ping mysql1
Check MySQL server logs:
docker logs mysql1
Validate credentials:
# Test with mysql client
docker run -it --rm mysql:8.0 mysql -h mysql1 -u root -p
# Test basic connectivity
docker run --rm \
--network vv0lll_default \
-e MYSQL_HOST=mysql1 \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=test123 \
vv0lll/mysql-shell mysqlsh --sql -e "SELECT VERSION();"
Place your scripts in the project's appropriate directories:
./data/./scripts/mysql-cluster/Copyright 2025 vv0lll [email protected]
Licensed under the Apache License, Version 2.0. See the LICENSE file for details.
For issues and questions related to this MySQL Shell container, please refer to:
Content type
Image
Digest
sha256:cffdea7bb…
Size
399.8 MB
Last updated
about 1 year ago
docker pull vv0lll/mysql-shell:8.0