I'm trying to connect my Next.js application to my AWS SQL Server Express database, but it's not working. It's indicating an issue with the user.
I can access it through SQL Server Management Studio using the same credentials. Additionally, in AWS RDS, I've allowed public access and adjusted the security groups accordingly.
Credentials:
- user: 'admin'
- password: '12345678'
- server: 'demo-ms.xxxxxxxxxxx.us-east-1.rds.amazonaws.com'
- database: 'demo-ms'
ConnectionError: Login failed for user 'admin'.
at C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\mssql\lib\tedious\connection-pool.js:70:17
at Connection.onConnect (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\connection.js:1012:9)
at Object.onceWrapper (node:events:629:26)
at Connection.emit (node:events:514:28)
at Connection.emit (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\connection.js:1040:18)
at C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\connection.js:2519:18
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'ELOGIN',
originalError: ConnectionError: Login failed for user 'admin'.
at Login7TokenHandler.onErrorMessage (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\token\handler.js:245:19)
at Readable. (C:\Users\JadFost\OneDrive\Documents\Projects\SqlServerCrud-NextJs-main\node_modules\tedious\lib\token\token-stream-parser.js:26:33)
at Readable.emit (node:events:514:28)
at addChunk (node:internal/streams/readable:376:12)
at readableAddChunk (node:internal/streams/readable:349:9)
at Readable.push (node:internal/streams/readable:286:10)
at next (node:internal/streams/from:98:31)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'ELOGIN',
isTransient: undefined
}
}
undefined
Here's the connection setup that's throwing the error:
lib\db.js:
import sql from 'mssql'
const config = {
user: 'admin',
password: '12345678',
server: 'demo-ms.xxxxxxxxxxx.us-east-1.rds.amazonaws.com',
database: 'demo-ms',
options: {
encrypt: false // desactiva el cifrado SSL
}
}
export async function executeQuery(query) {
const pool = await sql.connect(config)
const result = await pool.request().query(query)
return result.recordset
}
src\pages\api\getData.js:
import { executeQuery } from '../../../lib/db';
export default async function getData(req, res) {
try {
// Consulta SQL
const result = await executeQuery('SELECT * FROM Producto');
// Imprimir los resultados por consola
console.log(result);
res.status(200).json({ results: result})
} catch (err) {
// Manejo de errores
console.error(err);
}
}
src\pages\api\hello.js:
import getData from './getData'; // Asegúrate de tener la ruta correcta hacia getData.js
export default async function handler(req, res) {
try {
// Llama a la lógica de getData.js
const result = await getData(req, res);
// Imprimir los resultados por consola
console.log(result);
res.status(200).json({ results: result });
} catch (err) {
// Manejo de errores
console.error(err);
res.status(500).json({ error: 'Error al obtener datos de la base de datos' });
}
}
It would be amazing if you could help me out with this. I'd truly appreciate it.
I tried validating my database again on AWS, and it already has all the necessary public accesses, as evidenced by accessing it through SQL Server Management Studio.
I'd really like to connect my Next.js application to SQL Server Express.