batman
This commit is contained in:
143
README.md
Normal file
143
README.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# MariaDB Setup Guide
|
||||
|
||||
Welcome to the **MariaDB Setup Guide**! This documentation will guide you through the process of setting up your environment to use the MariaDB service with Docker Compose.
|
||||
|
||||
We provide a script to help you automate several of the configuration steps, but you can also perform these steps manually if needed.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
Before you begin, ensure you have the following installed:
|
||||
|
||||
- **Docker**
|
||||
- **Docker Compose**
|
||||
|
||||
If you're setting up MariaDB using Docker for the first time, this guide will help you ensure everything is ready to get your services up and running.
|
||||
|
||||
---
|
||||
|
||||
## Automatic Setup (Recommended)
|
||||
|
||||
We’ve provided a handy script `setup.sh` that will guide you through the setup interactively.
|
||||
|
||||
### Steps to Run the Automatic Setup:
|
||||
|
||||
1. **Run the Setup Script:**
|
||||
|
||||
- In your terminal, execute the following command:
|
||||
```bash
|
||||
./setup.sh
|
||||
```
|
||||
- The script will prompt you for the following information:
|
||||
- **MariaDB Database Name**: The name of the database that will be created.
|
||||
- **MariaDB Username**: The user that will have access to this database.
|
||||
- **MariaDB User Password**: The password for the specified user.
|
||||
- **MariaDB Root Password**: The root password for the MariaDB instance.
|
||||
- **MariaDB Port**: The port to expose MariaDB on your host machine (default is `3307`).
|
||||
|
||||
2. **Confirm Updates to Configuration:**
|
||||
|
||||
- After collecting input, `setup.sh` will:
|
||||
- Update the `.env` file with your supplied values.
|
||||
- Modify `compose.yaml`, replacing the standard "db1" service name with the database name you provided.
|
||||
- Ensure the port settings are correctly updated in the `compose.yaml`.
|
||||
|
||||
3. **Launch the Docker Containers:**
|
||||
|
||||
- Once the script finishes, bring up the Docker services with:
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
- This will launch the MariaDB container along with any other services in the background.
|
||||
|
||||
4. **Verify the Setup:**
|
||||
- Check the running containers and verify everything is up and running:
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Manual Setup (If You're Not Using the Script)
|
||||
|
||||
Alternatively, you can perform the setup manually by following these steps:
|
||||
|
||||
1. **Edit the `.env` File:**
|
||||
|
||||
- Open the `.env` file in your favorite text editor and update the following values:
|
||||
```bash
|
||||
MARIADB_DATABASE="your_database_name"
|
||||
MARIADB_USER="your_user_name"
|
||||
MARIADB_PASSWORD="your_password"
|
||||
MARIADB_ROOT_PASSWORD="your_root_password"
|
||||
```
|
||||
- Make sure these details match your desired configuration for the MariaDB database.
|
||||
|
||||
2. **(Optional) Remove the Configuration Volume:**
|
||||
|
||||
- If you do not need to persist custom MariaDB configurations in the container, you can delete the `db1-conf` volume reference in the `compose.yaml` file.
|
||||
|
||||
3. **Rename the "db1" in `compose.yaml`:**
|
||||
|
||||
- Find any occurrence of `db1` in `compose.yaml` and replace it with a name of your choice:
|
||||
- This includes the service name under `services` and the volume name.
|
||||
- For example:
|
||||
```yaml
|
||||
services:
|
||||
your_db_service_name:
|
||||
image: mariadb
|
||||
container_name: your_db_service_name
|
||||
...
|
||||
volumes:
|
||||
your_db_service_name-data:
|
||||
name: your_db_service_name-data
|
||||
networks:
|
||||
db:
|
||||
name: db
|
||||
```
|
||||
|
||||
4. **Bring Up the Docker Services:**
|
||||
|
||||
- After editing the files, run the following command to start the service:
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
- Docker Compose will create and spin up the MariaDB container in detached mode.
|
||||
|
||||
5. **Verify the Setup:**
|
||||
- You can verify the container is running by checking the list of running Docker containers:
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Post-Setup
|
||||
|
||||
Once your containers are up and running, you should now have a functional MariaDB instance ready to use! You can use MySQL clients or other database management tools to connect to the database.
|
||||
|
||||
### Connecting to MariaDB
|
||||
|
||||
To connect to your MariaDB database from the host machine, you can use the following details based on your `.env` configuration:
|
||||
|
||||
- **Host**: `localhost`
|
||||
- **Port**: The port you specified during setup (e.g., `3307`).
|
||||
- **Database Name**: The name you gave (from the `.env` file).
|
||||
- **Username**: The username you configured.
|
||||
- **Password**: The password corresponding to the username.
|
||||
|
||||
You can use a CLI client like `mysql` to check the connection:
|
||||
|
||||
```bash
|
||||
mysql -u your_user_name -p -h 127.0.0.1 -P 3307 your_database_name
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- If you need to modify the configuration further, simply re-edit the `.env` or `compose.yaml` files.
|
||||
- For advanced customizations or troubleshooting, refer to the official documentation for [MariaDB](https://mariadb.com/kb/en/) and [Docker Compose](https://docs.docker.com/compose/).
|
||||
|
||||
Happy developing! 🎉
|
||||
|
||||
If you run into any problems, please don't hesitate to reach out!
|
||||
27
compose.yaml
Normal file
27
compose.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
services:
|
||||
db1:
|
||||
image: mariadb
|
||||
container_name: db1
|
||||
environment:
|
||||
- TZ=America/New_York
|
||||
- MARIADB_DATABASE=${MARIADB_DATABASE}
|
||||
- MARIADB_USER=${MARIADB_USER}
|
||||
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
|
||||
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
|
||||
ports:
|
||||
- 3307:3306
|
||||
volumes:
|
||||
- db1-data:/var/lib/mysql
|
||||
- db1-conf:/etc/mysql/conf.d
|
||||
networks:
|
||||
- db
|
||||
|
||||
volumes:
|
||||
db1-data:
|
||||
name: db1-data
|
||||
db1-conf:
|
||||
name: db1-conf
|
||||
|
||||
networks:
|
||||
db:
|
||||
name: db
|
||||
6
guide.txt
Normal file
6
guide.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
1. Edit the .env with the wanted configuration
|
||||
2. (Optional) Delete the conf volume in compose.yaml
|
||||
3. Rename the "db1" standard name in compose.yaml with the wanted name
|
||||
4. Run "docker compose up -d"
|
||||
|
||||
A script is provided for easy setup.
|
||||
59
setup.sh
Executable file
59
setup.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Function to prompt for input with validation
|
||||
prompt_for_input() {
|
||||
local prompt="$1"
|
||||
local var_name="$2"
|
||||
read -p "$prompt: " input
|
||||
|
||||
# Check if input is empty and prompt again
|
||||
while [[ -z "$input" ]]; do
|
||||
echo "Input cannot be empty. Please enter a value."
|
||||
read -p "$prompt: " input
|
||||
done
|
||||
|
||||
# Set the variable
|
||||
eval "$var_name='$input'"
|
||||
}
|
||||
|
||||
# Prompt for Mariadb details
|
||||
prompt_for_input "Enter the Mariadb database name" DB_NAME
|
||||
prompt_for_input "Enter the Mariadb username" DB_USER
|
||||
prompt_for_input "Enter the Mariadb password" DB_PASSWORD
|
||||
prompt_for_input "Enter the Mariadb root password" ROOT_PASSWORD
|
||||
prompt_for_input "Enter the port number (default: 3307)" PORT
|
||||
PORT=${PORT:-3307} # Default to 3307 if not specified
|
||||
|
||||
# Update .env file
|
||||
ENV_FILE=".env"
|
||||
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
# Replace the variables in the .env file
|
||||
sed -i.bak "s/MARIADB_DATABASE=\"[^\"]*\"/MARIADB_DATABASE=\"$DB_NAME\"/" "$ENV_FILE"
|
||||
sed -i.bak "s/MARIADB_USER=\"[^\"]*\"/MARIADB_USER=\"$DB_USER\"/" "$ENV_FILE"
|
||||
sed -i.bak "s/MARIADB_PASSWORD=\"[^\"]*\"/MARIADB_PASSWORD=\"$DB_PASSWORD\"/" "$ENV_FILE"
|
||||
sed -i.bak "s/MARIADB_ROOT_PASSWORD=\"[^\"]*\"/MARIADB_ROOT_PASSWORD=\"$ROOT_PASSWORD\"/" "$ENV_FILE"
|
||||
echo ".env file updated successfully."
|
||||
|
||||
else
|
||||
echo "Error: .env file not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update compose.yaml file
|
||||
COMPOSE_FILE="compose.yaml"
|
||||
|
||||
if [[ -f "$COMPOSE_FILE" ]]; then
|
||||
# Replace 'db1' with the new database name
|
||||
sed -i.bak "s/db1/$DB_NAME/g" "$COMPOSE_FILE"
|
||||
|
||||
# Update the ports section
|
||||
sed -i.bak "s/3307:3306/$PORT:3306/" "$COMPOSE_FILE"
|
||||
|
||||
echo "compose.yaml file updated successfully."
|
||||
else
|
||||
echo "Error: compose.yaml file not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Setup completed successfully."
|
||||
Reference in New Issue
Block a user