MySQL Protocol Examples
MySQL Protocol Examples
Comprehensive code examples for using HeliosDB with MySQL protocol.
Connection Examples
Python with mysql-connector-python
import mysql.connectorfrom mysql.connector import pooling
# Basic connectiondef basic_connection(): conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb" ) return conn
# Connection pooldef create_pool(): pool = pooling.MySQLConnectionPool( pool_name="mypool", pool_size=10, host="localhost", port=3306, user="admin", password="password", database="heliosdb" ) return pool
# SSL connectiondef ssl_connection(): conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb", ssl_ca="/path/to/ca.pem", ssl_cert="/path/to/client-cert.pem", ssl_key="/path/to/client-key.pem" ) return connNode.js with mysql2
const mysql = require('mysql2/promise');
// Basic connectionasync function basicConnection() { const connection = await mysql.createConnection({ host: 'localhost', port: 3306, user: 'admin', password: 'password', database: 'heliosdb' }); return connection;}
// Connection poolfunction createPool() { return mysql.createPool({ host: 'localhost', port: 3306, user: 'admin', password: 'password', database: 'heliosdb', waitForConnections: true, connectionLimit: 10, queueLimit: 0 });}
// Execute queryasync function executeQuery() { const pool = createPool(); const [rows, fields] = await pool.execute( 'SELECT * FROM users WHERE status = ?', ['active'] ); return rows;}Go with go-sql-driver/mysql
package main
import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")
func main() { // Connection string dsn := "admin:password@tcp(localhost:3306)/heliosdb"
// Open connection db, err := sql.Open("mysql", dsn) if err != nil { panic(err) } defer db.Close()
// Configure pool db.SetMaxOpenConns(25) db.SetMaxIdleConns(5)
// Query rows, err := db.Query("SELECT id, name FROM users") if err != nil { panic(err) } defer rows.Close()
for rows.Next() { var id int var name string rows.Scan(&id, &name) fmt.Printf("ID: %d, Name: %s\n", id, name) }}CRUD Operations
Create (INSERT)
import mysql.connector
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb")cursor = conn.cursor()
# Single insertcursor.execute(""" INSERT INTO users (name, email, created_at) VALUES (%s, %s, NOW())""", ("Alice", "alice@example.com"))
# Bulk insertusers = [ ("Bob", "bob@example.com"), ("Charlie", "charlie@example.com"), ("Diana", "diana@example.com")]cursor.executemany(""" INSERT INTO users (name, email) VALUES (%s, %s)""", users)
# Upsert (ON DUPLICATE KEY UPDATE)cursor.execute(""" INSERT INTO users (id, name, email, updated_at) VALUES (%s, %s, %s, NOW()) ON DUPLICATE KEY UPDATE name = VALUES(name), email = VALUES(email), updated_at = NOW()""", (1, "Alice Updated", "alice.new@example.com"))
conn.commit()cursor.close()conn.close()Read (SELECT)
import mysql.connector
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb")cursor = conn.cursor(dictionary=True) # Return rows as dictionaries
# Simple querycursor.execute("SELECT * FROM users WHERE status = 'active'")users = cursor.fetchall()
# With parameterscursor.execute(""" SELECT u.*, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > %s GROUP BY u.id HAVING order_count > %s ORDER BY order_count DESC LIMIT %s""", ("2024-01-01", 5, 10))
top_users = cursor.fetchall()for user in top_users: print(f"{user['name']}: {user['order_count']} orders")
cursor.close()conn.close()Update
import mysql.connector
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb")cursor = conn.cursor()
# Single updatecursor.execute(""" UPDATE users SET status = %s, updated_at = NOW() WHERE id = %s""", ("inactive", 1))
# Bulk update with conditionscursor.execute(""" UPDATE orders SET status = 'cancelled' WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY) AND status = 'pending'""")
print(f"Rows affected: {cursor.rowcount}")conn.commit()cursor.close()conn.close()Delete
import mysql.connector
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb")cursor = conn.cursor()
# Soft deletecursor.execute(""" UPDATE users SET deleted_at = NOW(), status = 'deleted' WHERE id = %s""", (1,))
# Hard deletecursor.execute(""" DELETE FROM sessions WHERE expires_at < NOW()""")
print(f"Rows deleted: {cursor.rowcount}")conn.commit()cursor.close()conn.close()Transactions
import mysql.connector
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb", autocommit=False)cursor = conn.cursor()
try: # Start transaction conn.start_transaction(isolation_level='REPEATABLE READ')
# Debit from account A cursor.execute(""" UPDATE accounts SET balance = balance - %s WHERE id = %s AND balance >= %s """, (100, 1, 100))
if cursor.rowcount == 0: raise Exception("Insufficient funds")
# Credit to account B cursor.execute(""" UPDATE accounts SET balance = balance + %s WHERE id = %s """, (100, 2))
# Record transfer cursor.execute(""" INSERT INTO transfers (from_account, to_account, amount, created_at) VALUES (%s, %s, %s, NOW()) """, (1, 2, 100))
# Commit transaction conn.commit() print("Transfer successful")
except Exception as e: # Rollback on error conn.rollback() print(f"Transfer failed: {e}")finally: cursor.close() conn.close()Prepared Statements
import mysql.connector
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb")cursor = conn.cursor(prepared=True)
# Prepare statementstmt = """ SELECT id, name, email FROM users WHERE status = %s AND created_at > %s"""
# Execute multiple times with different parametersfor status in ['active', 'pending', 'inactive']: cursor.execute(stmt, (status, '2024-01-01')) users = cursor.fetchall() print(f"{status}: {len(users)} users")
cursor.close()conn.close()JSON Operations
import mysql.connectorimport json
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb")cursor = conn.cursor(dictionary=True)
# Create table with JSON columncursor.execute(""" CREATE TABLE IF NOT EXISTS products ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), attributes JSON )""")
# Insert JSON dataattributes = { "color": "red", "size": "large", "tags": ["sale", "new", "featured"]}cursor.execute(""" INSERT INTO products (name, attributes) VALUES (%s, %s)""", ("T-Shirt", json.dumps(attributes)))
# Query JSON fieldscursor.execute(""" SELECT name, JSON_EXTRACT(attributes, '$.color') as color, JSON_EXTRACT(attributes, '$.tags[0]') as first_tag FROM products WHERE JSON_CONTAINS(attributes, '"sale"', '$.tags')""")
for product in cursor.fetchall(): print(f"{product['name']}: {product['color']}")
# Update JSONcursor.execute(""" UPDATE products SET attributes = JSON_SET(attributes, '$.price', 29.99) WHERE id = %s""", (1,))
conn.commit()cursor.close()conn.close()Bulk Loading
import mysql.connector
conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb", allow_local_infile=True)cursor = conn.cursor()
# Load data from CSV filecursor.execute(""" LOAD DATA LOCAL INFILE '/path/to/data.csv' INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS (name, email, created_at)""")
print(f"Loaded {cursor.rowcount} rows")conn.commit()cursor.close()conn.close()Error Handling
import mysql.connectorfrom mysql.connector import Error, IntegrityError, DatabaseError
def safe_query(): try: conn = mysql.connector.connect( host="localhost", port=3306, user="admin", password="password", database="heliosdb" ) cursor = conn.cursor()
cursor.execute("INSERT INTO users (email) VALUES (%s)", ("duplicate@example.com",)) conn.commit()
except IntegrityError as e: print(f"Constraint violation: {e}") conn.rollback() except DatabaseError as e: print(f"Database error: {e}") conn.rollback() except Error as e: print(f"MySQL error: {e}") finally: if 'cursor' in locals(): cursor.close() if 'conn' in locals(): conn.close()Last Updated: January 2026