ER_ACCESS_DENIED_ERROR CloudSQL - PullRequest
       75

ER_ACCESS_DENIED_ERROR CloudSQL

0 голосов
/ 26 сентября 2019

Я получаю ошибку, которая выглядит следующим образом (в моем журнале функций)

Доступ запрещен для пользователя \'varun_admin\'@\'cloudsqlproxy~84.117.112.32\' (using password: YES)',

    sqlMessage:
`\'varun_admin\'@\'cloudsqlproxy~84.117.112.32\' (using password: YES)',`
    sqlState: '28000',

fatal: true} (84.117.112.32) преднамеренномодифицирована.

Я дважды проверил свои username и password, На самом деле, я сделал запрос из верстака, и все прошло нормально.

Вот как я создаю / инициализирую свой sql

const mysql = require('mysql')
const config = require('./../../config.js')


const connectionName = config.DB_CONNECTION_NAME
console.log(`Connection name: ${config.DB_CONNECTION_NAME}`)
const configSQL = {
    host: config.DB_HOST,
    user: config.DB_USER,
    password: config.DB_PASSWORD,
    database: config.DB_DATABASE
}

// Connection to cloud sql in production

if (!process.env.dev) {
    configSQL.socketPath = `/cloudsql/${connectionName}`;
}

//SQL Config
const pool = mysql.createPool(configSQL)

// Checking if it was connected sucessfully or not on server startup
pool.getConnection((err, connection) => {
    if (err) {
        console.error('error connecting: ' + err)
        return
    }
    console.log('connected as id ' + connection.threadId)
    connection.release()
    return
})

И следующая функция обычно вызывает вызов для получения данных

const getEverythingFromTable = tableName => {
    return new Promise((resolve, reject) => {
        pool.getConnection((error, connection) => {
            if (error) return reject(error)
            const query = `SELECT * FROM ${tableName}`
            connection.query(query, (err, response) => {
                connection.destroy()
                if (err) return reject(err)
                return resolve(response)
            })
        })
    })
}

Любая идея, что яможет быть не так?

Журналы SQL

enter image description here

Обновление: 1

Этизначения среды, которые я передаю в Cloud SQL Config

enter image description here

(см. фрагмент кода выше)

Где мойКонфигурация cloudSQL в пользовательском интерфейсе выглядит следующим образом

enter image description here enter image description here enter image description here

Как явызывая функции / вызывая их, код NodeJS для этого приведен выше.

1 Ответ

1 голос
/ 26 сентября 2019

Убедитесь, что у пользователя Cloud SQL varun_admin есть разрешение на подключение с хоста cloudsqlproxy~84.117.112.32.Это также может быть %, но я бы рекомендовал разрешить только то, что требуется для подключения (это только один хост).Также не забудьте сбросить привилегии на mySQL, чтобы изменения учетной записи были применены немедленно.

...