MySQL Database Connection - Python
import mysql.connector
from mysql.connector import Error
import sys
def connect_to_mysql(host='localhost', database='school_db',
user='root', password='password'):
"""
Connect to MySQL database with error handling
Args:
host (str): MySQL server host
database (str): Database name
user (str): Username
password (str): Password
Returns:
tuple: (connection, error_message)
"""
connection = None
try:
connection = mysql.connector.connect(
host=host,
database=database,
user=user,
password=password
)
if connection.is_connected():
print(f"β
Connected to MySQL database '{database}'")
return connection, None
except Error as e:
error_msg = f"β Error connecting to MySQL: {e}"
print(error_msg)
return None, error_msg
return connection, None
def test_connection(connection):
"""Test if connection is active"""
if connection and connection.is_connected():
cursor = connection.cursor()
cursor.execute("SELECT DATABASE()")
db_name = cursor.fetchone()
print(f"π Current database: {db_name[0]}")
cursor.close()
return True
return False
def close_connection(connection):
"""Safely close database connection"""
if connection and connection.is_connected():
connection.close()
print("π MySQL connection closed")
# Usage Example
if __name__ == "__main__":
# Connect to database
conn, error = connect_to_mysql()
if conn:
# Test connection
test_connection(conn)
# Your database operations here
# Close connection
close_connection(conn)
else:
print(f"Connection failed: {error}")
sys.exit(1)
π οΈ Common Connection Parameters
| Parameter |
Example |
Description |
host |
'localhost' |
MySQL server address |
database |
'school_db' |
Database name to connect |
user |
'root' |
MySQL username |
password |
'password' |
MySQL password |
port |
3306 |
MySQL port (optional) |
π§ Connection String Variations
With Port
connection = mysql.connector.connect(
host='localhost',
port=3306,
database='school_db',
user='root',
password='password'
)
Remote Database
connection = mysql.connector.connect(
host='your-server.com',
database='production_db',
user='app_user',
password='secure_password'
)
β οΈ Common Errors & Solutions
| Error |
Cause |
Solution |
Access denied for user |
Wrong username/password |
Check credentials |
Can't connect to MySQL server |
Server not running |
Start MySQL service |
Unknown database |
Database doesn't exist |
Create database first |
Connection timeout |
Network/firewall issues |
Check firewall settings |
π Installation
# Install MySQL connector
pip install mysql-connector-python
# Alternative: PyMySQL
pip install pymysql
π Learn Database Theory β