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