在'localhost:3306'上与MySQL服务器的连接丢失,系统错误:连接不可用

问题描述

servlet2.py

import MysqL.connector
from MysqL.connector import Error
from MysqL.connector import errorcode

try:     
    connection = MysqL.connector.connect(host='localhost',database='*project',user='*****',password='*****',)
    print("Connection Established")
    
except MysqL.connector.Error as e:
    if e.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print('Somethign is wrong with username or password')
    elif e.errno == errorcode.ER_BAD_DB_ERROR:
        print('Database does not exist')
    else:
        print(e)
    
c = connection.cursor()

def insertsql(user):
    MysqL_insert_query = "INSERT INTO python_project.test (Name) VALUES (?)",(user)
    print("user:",user)
    c.execute(MysqL_insert_query)
    print(c.rowcount,"Record inserted successfully into test table")
   

def username():
    user = input("Please Enter Your Name: " )
    insertsql(user)

test_script.py

import servlet2
servlet2.username()

但是,一旦输入名称,我就可以建立与数据库的连接。它将无法连接并提示错误

OperationalError: Lost connection to MysqL server at 'localhost:3306',system error: Connection not available.

解决方法

import mysql.connector
from mysql.connector import Error
from mysql.connector import errorcode

try:     
    connection = mysql.connector.connect(host='127.0.0.1',database='python_project',user='root',password='catdog123',)
    print("Connection Established")
    #cursor = connection.cursor()
    #cursor.execute("""INSERT INTO test (Name) VALUES ('harry')""")
    #connection.commit()
    #cursor.close()
   
    
except mysql.connector.Error as e:
    if e.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print('Somethign is wrong with username or password')
    elif e.errno == errorcode.ER_BAD_DB_ERROR:
        print('Database does not exist')
    else:
        print(e)
    
c = connection.cursor()


def insertSQL(user):

    #mySql_insert_query = """INSERT INTO test (Name) VALUES (?)""",user
    print("user:",user)
    print(c.rowcount,"Record inserted successfully into test table")
    
    c.execute("""INSERT INTO test (Name) VALUES ('{}')""".format(user))
    connection.commit()
    
 
    

def username():
    user = input("Please Enter Your Name:" )
    insertSQL(user)
    

我设法通过将插入语句VALUES更改为('{}')。format(user)

来解决该问题