I wrote a docker compose file and used docker compose up -d
command. Then I wrote a simple python script to connect with maria db but I get error everytime.
mariadb version in my virtual environment is 1.0.11 pip install mariadb==1.0.11
version: '3.8'
services:
mariadb:
image: mariadb:latest
container_name: my_mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: myrpass
MYSQL_DATABASE: db1
MYSQL_USER: user
MYSQL_PASSWORD: mypass
volumes:
- mariadb-data:/var/lib/mysql
ports:
- "3307:3307"
volumes:
mariadb-data: {}
My python code:
import mariadb
host = "mariadb"
port = 3307
user = "user"
password = "mypass"
database = "db1"
try:
conn = mariadb.connect(
host=host,
port=port,
user=user,
password=password,
database=database
)
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
version = cursor.fetchone()[0]
print(f"Connected to MariaDB server version: {version}")
except mariadb.Error as e:
print(f"Error connecting to database: {e}")
else:
print('Connection found attempting to close it now')
if conn:
conn.cursor().close()
conn.close()
finally:
print('Code execution complete')
Error when I use mariadb as host:
Error connecting to database: Unknown MySQL server host 'mariadb' (-3)
Code execution complete
Error when I use localhost as host:
Error connecting to database: Access denied for user 'user'@'localhost' (using password: YES)
Code execution complete
You can use docker inspect command to know the ip address of docker
docker inspect containerid
Change the host with the ip address of docker and you are good to go.
For me I had created the database after creating container using docker exec command
docker exec -it container_name:service_name -u root -p
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With