sudo apt update
sudo apt install mysql-server -y
- Start the MySQL service
sudo systemctl start mysql
sudo systemctl enable mysql
- Set the MySQL root password:
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
- Create the database, user and table:
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'%';
FLUSH PRIVILEGES;
- Edit the MySQL configuration file:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- Change it to:
bind-address = 0.0.0.0
- Restart MySQL:
sudo systemctl restart mysql
- Install the required Python packages:
pip install flask mysql-connector-python werkzeug
- Start the Flask application:
python3 app.py
- First, create a custom Docker network to allow communication between the MySQL and Flask containers.
docker network create my-network
docker run -d \
--name mysql_container \
--network my-network \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABASE=mydb \
-p 3306:3306 \
mysql:8.0
- Check if the MySQL container is running:
docker ps -a
- Enter the MySQL container to check if the database was created:
docker exec -it mysql_container mysql -u root -p
- Use
passwordwhen prompted and run:
SHOW DATABASES;
USE mydb;
db = mysql.connector.connect(
host="mysql_container", # MySQL container's name
user="root",
password="password",
database="mydb"
)
- Create Table is not present
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
);
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'%';
FLUSH PRIVILEGES;
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python3","app.py"]
- Build the Flask app image:
docker build -t flask-app .
- Run the Flask app container connected to the same Docker network:
docker run -d \
--name flask_app_container \
--network my-network \
-p 5000:5000 \
flask-app
http://<your-ec2-public-ip>:5000
- Install Docker Compose
apt install docker-compose
- Run the Application
docker-compose up -d
- Down the Container
docker-compose down
