MySQL удаленный запрос работает, но удаленная вставка не удается через Python - PullRequest
0 голосов
/ 28 августа 2018

Я использую Ubuntu 16.04 с MySQL. Я открыл сервер MySQL для удаленных подключений, и мой удаленный скрипт Python может запрашивать мою базу данных, но все попытки INSERT завершаются неудачей без записи в журнал ошибок.

Также похоже, что мои удаленные INSERT видны, потому что мой идентификатор AUTO_INCREMENT увеличивается без записей при выполнении кода INSERT Python.

Любое понимание приветствуется!

Простая схема таблицы:

CREATE TABLE test (
    ID int NOT NULL AUTO_INCREMENT,
    x INT,
    PRIMARY KEY (ID)
);

Это работает непосредственно на сервере:

INSERT INTO test (x) VALUES (10);

Это запрос Python, который работает:

try:
    connection = db.Connection(host=HOST, port=PORT, user=USER, passwd=PASSWORD, db=DB)
    cursor = connection.cursor()
    print("Connected to Server")

    cursor.execute("SELECT * FROM test")
    result = cursor.fetchall()
    for item in result:
        print(item)

except Exception as e:
    print('exception connecting to server db: ' + str(e))

finally:
    print('closing connection...')
    connection.close()

И вставка Python, которая не работает:

try:
    connection = db.Connection(host=HOST, port=PORT, user=USER, passwd=PASSWORD, db=DB)
    cursor = connection.cursor()
    print("Connected to Server")

    cursor.execute("INSERT INTO test (x) VALUES (10);")

except Exception as e:
    print('exception connecting to server db: ' + str(e))

finally:
    print('closing connection...')
    connection.close()

Спасибо

1 Ответ

0 голосов
/ 28 августа 2018

Добавьте эту строку после execute() вызова:

cursor.execute("INSERT INTO test (x) VALUES (10)")
connection.commit()

При внесении изменений в базу данных требуется, чтобы вы зафиксировали свои изменения, никакие изменения не вступили в силу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...