当运行多个进程时遇到MySQL连接被拒绝的问题,通常是由于以下几个基础概念导致的:
可以通过修改MySQL配置文件中的max_connections
参数来增加允许的最大连接数。
-- 查看当前最大连接数
SHOW VARIABLES LIKE 'max_connections';
-- 修改最大连接数(需要重启MySQL服务)
SET GLOBAL max_connections = 500;
确保每个进程使用不同的端口连接到MySQL服务器。
import mysql.connector
config = {
'user': 'your_user',
'password': 'your_password',
'host': '127.0.0.1',
'port': 3307, # 使用不同的端口
'database': 'your_database'
}
try:
conn = mysql.connector.connect(**config)
print("Connected to MySQL database")
except mysql.connector.Error as err:
print(f"Error: {err}")
确保每个进程使用的用户账号有足够的权限连接到MySQL服务器。
-- 授予权限
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;
使用连接池管理数据库连接,可以有效避免连接数过多的问题。
from mysql.connector.pooling import MySQLConnectionPool
pool = MySQLConnectionPool(pool_name="mypool", pool_size=5, **config)
try:
conn = pool.get_connection()
print("Connected to MySQL database")
except mysql.connector.Error as err:
print(f"Error: {err}")
通过上述方法可以有效解决运行多个进程时MySQL连接被拒绝的问题。
领取专属 10元无门槛券
手把手带您无忧上云