/ / Sequelize db: migrate throw TypeError: Дані повинні бути рядком або буфером - node.js, sequelize.js

Sequelize db: migrate throw TypeError: Дані повинні бути рядком або буфером - node.js, sequelize.js

crypto.js:74
this._handle.update(data, encoding);
^
TypeError: Data must be a string or a buffer
at TypeError (native)
at Hash.update (crypto.js:74:16)
at sha1 (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/auth_41.js:30:8)
at Object.token [as calculateToken] (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/auth_41.js:64:16)
at new HandshakeResponse (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/packets/handshake_response.js:25:24)
at ClientHandshake.sendCredentials (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/commands/client_handshake.js:46:27)
at ClientHandshake.handshakeInit (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/commands/client_handshake.js:122:10)
at ClientHandshake.Command.execute (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/commands/command.js:39:20)
at Connection.handlePacket (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/connection.js:417:28)
at PacketParser.onPacket (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/connection.js:93:16)
at PacketParser.executeStart (/mnt/projects/Nodejs/develda/node_modules/mysql2/lib/packet_parser.js:73:14)
at Socket.<anonymous> (/mnt/projects/Nodejs/develda/node_modules/mysql2 /lib/connection.js:101:29)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:547:20)

Я отримую цю помилку, коли намагаюся перейти з node_modules / .bin / sequelize db: migrate

Я думаю, що mysql2 пакет викликає цю помилку

Я вдячний за вашу допомогу

Відповіді:

2 для відповіді № 1

Спочатку переконайтеся, що ваш config.json не містити нецитовані значення, такі як пароль у цьому прикладі:

{
"my_env": {
"username": "root",
"password": 1234,
"database": "my_db",
"host"    : "localhost",
"dialect" : "mysql"
}
}

Якщо це не вирішить вашу проблему, і у вас євагома причина вважати, що вона має щось робити з пакетом mysql2, спробуйте понизити пакунок sequelize до v3 і використовує mysql замість mysql2


0 для відповіді № 2

Якщо ви використовуєте команду "секвізувати init"щоб ініціювати проект, ви повинні перевірити ваш config.json.Because за замовчуванням"порт"поле не включається. Тим часом , переконайтеся, що ваш config.json у цьому прикладі не містить жодного некотируемого пароля.

{
"my_env": {
"username": "root",
"password": 1234,
"database": "my_db",
"host"    : "localhost",
"dialect" : "mysql"
}
}