Erro do Ubuntu com o banco de dados, mas não no Debian

0

Então, eu tenho dois servidores e ambos têm SO diferente, um é o Ubuntu 17 e o outro é o Debian 9 Mínimo (Mínimo porque meu serviço de hospedagem só tem isso ou Debian 7). Então, ambos têm o mesmo arquivo html e arquivo js e arquivo php. Toda vez que eu almoço meu aplicativo no servidor Ubuntu recebo este erro:

[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\'' }

E no Debian eu não recebo este erro.

Então, no final, gostaria de usar o Ubuntu porque estou mais familiarizado com ele.

Obrigado Se você precisar de informações adicionais, basta perguntar-me.

PS: Para alguém me dizendo que eu tenho que especificar um valor específico no meu código, bem, não, porque ele precisa estar em nenhum porque meu "bot" irá definir o valor por ele mesmo. O valor depende do que o usuário está fazendo e há um milhão de possibilidades e não pode criar uma linha de código para todas elas.

    
por KnottyCord 05.11.2017 / 18:34

1 resposta

2

O problema é claramente declarado:

% bl0ck_qu0te%

Você tenta inserir um registro em uma tabela sem especificar um valor para o campo mencionado acima e nenhum valor padrão é conhecido na definição da tabela. A diferença que você observa entre os dois servidores pode vir de uma diferença no servidor de banco de dados usado ou na definição da tabela. Então você tem 3 opções:

  1. Adicione um valor para esse campo na instrução INSERT.
  2. Modifique a definição da sua tabela
  3. Certifique-se de usar o mesmo servidor de banco de dados nos dois servidores.
por Marc Vanhoomissen 05.11.2017 / 18:53