Ошибка Ubuntu с базой данных, но не на Debian

Итак, у меня есть два сервера, и у обоих есть другая ОС, одна из которых - Ubuntu 17, а другая - Debian 9 Minimal (минимальная, потому что у моей службы хостинга есть только это или Debian 7). Таким образом, оба имеют один и тот же файл html и файл js и php-файл. Каждый раз, когда я обедаю свое приложение на сервере Ubuntu, я получаю эту ошибку:

[2017-11-02 18:06:58.514] [ERROR] [default] - Strange error [2017-11-02 18:06:58.515] [ERROR] [default] - { Error: ER_NO_DEFAULT_FOR_FIELD: Field 'pskinsurl' doesn't have a default value at Query.Sequence._packetToError (/var/www/Bot/node_modules/mysql/lib/protoc ol/sequences/Sequence.js:52:14) at Query.ErrorPacket (/var/www/Bot/node_modules/mysql/lib/protocol/sequences /Query.js:77:18) at Protocol._parsePacket (/var/www/Bot/node_modules/mysql/lib/protocol/Proto col.js:279:23) at Parser.write (/var/www/Bot/node_modules/mysql/lib/protocol/Parser.js:76:1 2) at Protocol.write (/var/www/Bot/node_modules/mysql/lib/protocol/Protocol.js: 39:16) at Socket.<anonymous> (/var/www/Bot/node_modules/mysql/lib/Connection.js:103 :28) at emitOne (events.js:116:13) at Socket.emit (events.js:211:7) at addChunk (_stream_readable.js:263:12) at readableAddChunk (_stream_readable.js:250:11) -------------------- at Protocol._enqueue (/var/www/Bot/node_modules/mysql/lib/protocol/Protocol. js:145:48) at Connection.query (/var/www/Bot/node_modules/mysql/lib/Connection.js:208:2 5) at Query._callback (/var/www/Bot/cf.js:3293:26) at Query.Sequence.end (/var/www/Bot/node_modules/mysql/lib/protocol/sequence s/Sequence.js:88:24) at Query._handleFinalResultPacket (/var/www/Bot/node_modules/mysql/lib/proto col/sequences/Query.js:139:8) at Query.EofPacket (/var/www/Bot/node_modules/mysql/lib/protocol/sequences/Q uery.js:123:8) at Protocol._parsePacket (/var/www/Bot/node_modules/mysql/lib/protocol/Proto col.js:279:23) at Parser.write (/var/www/Bot/node_modules/mysql/lib/protocol/Parser.js:76:1 2) at Protocol.write (/var/www/Bot/node_modules/mysql/lib/protocol/Protocol.js: 39:16) at Socket.<anonymous> (/var/www/Bot/node_modules/mysql/lib/Connection.js:103 :28) code: 'ER_NO_DEFAULT_FOR_FIELD', errno: 1364, sqlMessage: 'Field \'pskinsurl\' doesn\'t have a default value', sqlState: 'HY000', index: 0, sql: 'INSERT INTO games SET expire = 1509662218, cassetids = \'12530890030\', csteamid = \'76561198114317007\', cname = \'KnottyCord\', cavatar = \'https://st eamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/1d/1d3f34eee812968fd5 548f36ee281265373ddf91_full.jpg\', cskinsurl = \'-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWw KGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQNqhpOSV-fRPasw8rsVFx5KAVo5PSkKV4xhfG fKTgVvIXlxNPSwaOmMLiGwzgJvJMniO-Zoo_z2wXg-EVvfSmtc78HsNoy\', cskinsnames = \'Gam ma 2 Case\', cskinsprices = \'0.03\', cskins = 1, ctp = 0.03, cpick = \'t\', tcr eated = 1509660418.494, hash = \'adb9037cfd700a24544d4d774189a223\', bot = \'bot 1\'' }

И на Debian я не получаю эту ошибку.

Итак, в конце концов я хотел бы использовать Ubuntu, потому что я знаком с ним.

Спасибо. Если вам нужна дополнительная информация, просто спросите меня.

PS: Кому-то, кто сказал мне, что мне нужно указать конкретное значение в моем коде, ну нет, потому что он должен быть никем, потому что мой «бот» установит значение сам. Значение зависит от того, что делает пользователь, и существует миллион возможностей и не может составить строку кода для всех из них.

0
задан 5 November 2017 в 21:34

3 ответа

Ясно, что проблема:

Поле `pskinsurl \ 'не имеет значения по умолчанию

Вы пытаетесь вставить запись в таблицу без указания значения для указанного выше поля, и значение по умолчанию не известно в определении таблицы. Разница, которую вы наблюдаете между двумя серверами, может исходить из разницы в используемом вами сервере базы данных или в определении таблицы. Итак, у вас есть 3 варианта:

Добавьте значение для этого поля в инструкции INSERT. Измените определение вашей таблицы. Убедитесь, что вы используете один и тот же сервер базы данных на обоих серверах.
2
ответ дан 22 May 2018 в 16:46
  • 1
    Это мой код для обновления базы данных: pool.query ('UPDATE games SET psteamid = & quot ;, & quot ;, pname = & quot ;, & quot ;, pavatar = "& quot ;, pskinsurl =" " , pskinsnames = "," pskinsprices = ", pskins =", "ptp =", trade_token = "WHERE trade_token = '+ pool.escape (строка [i] .tid), function (aaa, bbb) {if (err) throw err; – KnottyCord 5 November 2017 в 21:58
  • 2
    Есть ли способ установить значение none на ubuntu? Причина, по которой программе абсолютно необходимо, чтобы ценность не работала – KnottyCord 5 November 2017 в 23:34
  • 3
    Странно: в фрагменте кода вашего вопроса у вас есть оператор INSERT и здесь UPDATE. Зачем? Во всяком случае, ваш вопрос - это просто вопрос программирования, а не вопрос Ubuntu. Для Java я не могу ответить. Для Python я бы использовал: pskinsurl = None, чтобы поместить поле в нулевое значение. Конечно, ваше определение таблицы должно допускать значения «Null» для этого поля, иначе независимо от ОС ваша СУБД откажется от значений «Null». – Marc Vanhoomissen 6 November 2017 в 12:30

Ясно, что проблема:

Поле `pskinsurl \ 'не имеет значения по умолчанию

Вы пытаетесь вставить запись в таблицу без указания значения для указанного выше поля, и значение по умолчанию не известно в определении таблицы. Разница, которую вы наблюдаете между двумя серверами, может исходить из разницы в используемом вами сервере базы данных или в определении таблицы. Итак, у вас есть 3 варианта:

Добавьте значение для этого поля в инструкции INSERT. Измените определение вашей таблицы. Убедитесь, что вы используете один и тот же сервер базы данных на обоих серверах.
2
ответ дан 18 July 2018 в 03:50

Ясно, что проблема:

Поле `pskinsurl \ 'не имеет значения по умолчанию

Вы пытаетесь вставить запись в таблицу без указания значения для указанного выше поля, и значение по умолчанию не известно в определении таблицы. Разница, которую вы наблюдаете между двумя серверами, может исходить из разницы в используемом вами сервере базы данных или в определении таблицы. Итак, у вас есть 3 варианта:

Добавьте значение для этого поля в инструкции INSERT. Измените определение вашей таблицы. Убедитесь, что вы используете один и тот же сервер базы данных на обоих серверах.
2
ответ дан 24 July 2018 в 17:56

Другие вопросы по тегам:

Похожие вопросы: