Pertama, saya bekerja di Window.
Saya memberikan maklumat yang diperlukan dengan tepat (hos, pengguna, kata laluan, port, pangkalan data) tetapi ia memberikan ralat.
code: 'ER_ACCESS_DENIED_ERROR', errno: 1045, sqlMessage: "Access denied for user 'root'@'localhost' (using password: YES)", sqlState: '28000', fatal: true
Saya mencuba pelbagai cara untuk menyelesaikan masalah ini tetapi semuanya gagal. Saya tidak tahu mengapa memasang semula MySQL buat sementara waktu menyelesaikannya. Tetapi apabila saya memulakan semula komputer saya, ralat muncul lagi. Saya segera mengekodnya, bermain dengan versi dan mencubanya.
const express = require('express'); const app = express(); const mysql = require('mysql'); const port = process.env.PORT || 4000; const connection = mysql.createConnection({ host: "localhost", user: "root", password: "123456", port: "3306", database: "study01" }); console.log(connection); connection.connect(); app.listen(app.get('port'), () => console.log(`Listening on port ${port}`));
mysql server : 5.7.38 nodejs : 16.15.1 nodejs mysql : 2.18.1 nodejs express : 4.18.1
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '123456';
Masalahnya ialah akaun anda tidak mempunyai kebenaran untuk menyambung ke pangkalan data.
Arahan anda memberikan kebenaran, namun, anda memerlukan cincang kata laluan akaun.
Dapatkan cincang kata laluan akaun anda sedang berjalan
Output itu kemudian disalurkan ke bahagian pencincangan kata laluan bagi arahan ini
Aksara% ialah kad bebas supaya ia membolehkan anda menyambung ke pangkalan data daripada sebarang alamat IP. Untuk keselamatan tambahan, anda boleh mengehadkannya kepada alamat IP anda sahaja
Semoga ini membantu.