gohellp
@gohellp

Почему mysql не пускает бота?

Взял VPS, кое-как через пень-колоду поднял на нём одного бота, обрадовался, решил и второго поднять. Перенеся базу данных и самого бота столкнулся с такой проблемой: через консоль и клиент использовать оною могу, а на mysql2 в боте оно ругается "ACCEST DENIED":
# node main
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: Access denied for user 'root'@'localhost'
    at Packet.asError (/root/bots/dc_gth/node_modules/mysql2/lib/packets/packet.js:712:17)
    at ClientHandshake.execute (/root/bots/dc_gth/node_modules/mysql2/lib/commands/command.js:28:26)
    at Connection.handlePacket (/root/bots/dc_gth/node_modules/mysql2/lib/connection.js:425:32)
    at PacketParser.Connection.packetParser.p [as onPacket] (/root/bots/dc_gth/node_modules/mysql2/lib/connection.js:75:12)
    at PacketParser.executeStart (/root/bots/dc_gth/node_modules/mysql2/lib/packet_parser.js:75:16)
    at Socket.Connection.stream.on.data (/root/bots/dc_gth/node_modules/mysql2/lib/connection.js:82:25)
    at Socket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
Emitted 'error' event at:
    at Connection._notifyError (/root/bots/dc_gth/node_modules/mysql2/lib/connection.js:225:12)
    at ClientHandshake.Connection.handshakeCommand.on.err (/root/bots/dc_gth/node_modules/mysql2/lib/connection.js:114:14)
    at ClientHandshake.emit (events.js:203:15)
    at ClientHandshake.execute (/root/bots/dc_gth/node_modules/mysql2/lib/commands/command.js:33:14)
    at Connection.handlePacket (/root/bots/dc_gth/node_modules/mysql2/lib/connection.js:425:32)
    [... lines matching original stack trace ...]
    at addChunk (_stream_readable.js:288:12)

при использовании самого mysql-client:
# mysql -p -u root
Enter password: %mypass%
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Вот уже второй день гуглю, бьюсь и гуглю - не помогает. Пароль, адрес и имя пользователя(root, кто б здесь ошибся?:D) - однозначно верные.
Если, всё ж я накосячил(в чём не уверен, так как под виндой та же база отлично работает с кодом):
const mysql = require('mysql2');
const cfg = require('./config.json');

const connection = mysql.createConnection({
	host:"localhost",
	user:cfg.dbLogin,
	database:"gth_db",
	password:cfg.dbPass
});

Если где туплю, прошу объясните, так как я с mysql "на вы", а с ним же, только на линксе вовсе "на высокопочтенный".
Заранее благодарен
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
gohellp
@gohellp Автор вопроса
Пофиксил, создав нового пользователя и предоставив ему почти все права.
Единственное что, так это mysql ругается на любые операции, хоть и права на них у юзера есть...

1)Создаём юзера:
CREATE USER 'user'@'%' IDENTIFIED BY 'password';

2)Предоставляем права(на каждую нужную бд отдельно):
GRANT ALL PRIVILEGES ON database.table TO 'user'@'%';


Это мне и помогло... Чего там у РУТА не хватало по правам - остаётся только гадать... Тем более, локальный доступ тоооо...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Error: Access denied for user 'root'@'localhost'

Скорее всего указали боту неверный пароль (config.json). А что в логах mysql? Нет ли записей что пользователь root пытается коннектиться с неверным паролем?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы