NodeJS xdevapi - Создание подключения к базе данных MySQL - PullRequest
1 голос
/ 24 апреля 2020

Я использовал официальный пакет MySQL NPM, найденный здесь: https://www.npmjs.com/package/@mysql / xdevapi .

Однако я не могу подключиться к сервер. Вот текущее сообщение об ошибке, которое я получаю:

Error: The server connection is not using the X Protocol.
Make sure you are connecting to the correct port and using a MySQL 5.7.12 (or higher) server intance.

Вот код, который генерирует эту проблему:

const db = mysqlx.getSession('root@localhost:33060/schemaname').then(session => {
    console.log('SESSION STARTED!!');
});

Это просто тестовая база данных без пароля, поэтому я не думаю, пароль является проблемой. Кроме того, я убедился, что использую правильный порт, и версия MySQL - 8.xx, поэтому я не думаю, что это проблема. Я создал базу данных с помощью приложения Dbngin и подтвердил, что могу подключиться к базе данных, выполнив в терминале следующую команду: mysql -u root -h 127.0.0.1 --port=33060 -p, которая сработала. Я также запускаю это на своей Ma c.

Обновление: Я также попытался передать объект конфигурации без особой удачи:

const config = {
    user: 'root',
    password: '',
    host: 'localhost',
    port: 33060,
    schema: 'schemaname'
};

const db = mysqlx.getSession(config).then(session => {
    console.log('SESSION STARTED!!');
});

К сожалению , этот код выдает ту же ошибку выше.

1 Ответ

2 голосов
/ 24 апреля 2020

Я сам попробовал и получил ту же ошибку, потому что вы используете неправильный порт. Возможно, вы изменили порт по умолчанию, но порт по умолчанию: 3306, а не 33060, хотя я должен использовать порт 33060, в то время как мой порт 3306.

X-protocal требует, чтобы вы умножили ваш порт на 10 я вижу здесь: https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html. Так что, если ваш исходный порт 33060, я думаю, это должно быть 330600.

Вы можете попробовать эту команду SHOW VARIABLES LIKE 'mysqlx_port';

...