Не удалось подключиться к базе данных MAMP MySQL с помощью удаленного подключения Wakanda.

Я пытаюсь подключиться к базе данных MAMP MySQL из Wakanda 11.

Я попытался подключиться к базе данных localhost с помощью Подключиться к удаленному хранилищу данных, но все равно получаю ответ Connection failed. Я также пытался использовать порт 127.0.0.1:8081, к которому он подключается, но не при попытке использовать port:3306, где у меня настроена база данных MySQL на сервере MAMP. Что я делаю не так?

Я пробовал следующий скрипт...

model.addSQLCatalog("mysqldb", {
  hostname: '127.0.0.1', 
  port: 3306,
  user: 'root',
  password: 'xxxxxxxx',
  database: 'my_database_name',
  ssl: false,
  dbType: 'mysql'
});

... но это дает мне следующую ошибку:

TypeError: JSON.stringify не может сериализовать циклические структуры.

Как я могу исправить и заставить его работать на порту: 3306, чтобы я мог видеть свои структуры базы данных?


person Darrellh    schedule 30.06.2016    source источник


Ответы (2)


Если вы используете Wakanda Enterprise Edition 11 или выше, существует Соединитель MySQL Pro.

Вот пример подключения к этому:

model.mergeSQLCatalog(localName, {
    hostname: string 'host name',
    port: number remote_port_number,
    user: string 'userName', 
    password: string 'password',
    database: string 'SQL database name',
    jsFile: string 'configuration JavaScript file',
    ssl: boolean true or false,
    dbType: string 'mysql' } )

Если вы используете более старую версию Wakanda Enterprise Edition, но по-прежнему используете версию 7 или более позднюю, существует коннектор Wakanda/MySQL.

Вот пример подключения к MySQL с помощью коннектора:

var sql = require('waf-sql');
    //use port 3306 and do not use SSL
var dbconn = sql.connect('mysql','192.168.0.21', 'john', 'x54?hsf5x!','arts',3306,false); 
var rs = dbconn.update("people", {
    name: "smith",
    age: 42
    }, {
        id: 1
    });
var rs = dbconn.select("*", "people", {
        id: 1
    });
var row = rs.getNextRow(); // get the first row
dbcon.close(); // close connection

Вот пример доступных параметров:

var params = {
    hostname: [your host name or IP address],
    user: [the user name of your DB],
    password: [the user password],
    database: [the DB name],
    port: [the port number of the MySQL Server, by default 3306],
    ssl: false,
    dbType : 'mysql'
};
person Tim Penner    schedule 30.06.2016
comment
Я не знаю, где найти jsFile: string «файл конфигурации JavaScript»? - person Darrellh; 30.06.2016
comment
Документы говорят, что это необязательно. jsFile String (необязательно) Относительный путь к файлу конфигурации JavaScript, расположенному в той же папке, что и модель. - person Tim Penner; 30.06.2016
comment
__ОШИБКА: сообщение: непредвиденная строка, строка № 76, файл:///Applications/MAMP/htdocs/xxxxxxx_app/xxxxxx/_app/CyclingThroughModel.js. componentSignature: jvsc errCode: 4055 сообщение: Ошибка оценки файла javascript:///Applications/MAMP/htdocs/xxxxxx_app/xxxxxx_app/CyclingThroughModel.js componentSignature: JS4D errCode: 2 Это сообщение об ошибке было возвращено при запуске сценария model.mergeSQLCatalog - person Darrellh; 30.06.2016
comment
какую версию Wakanda вы используете и в какой файл вы помещаете этот код? Я немного смущен, почему сообщение об ошибке ссылается на файлы внутри иерархии MAMP... - person Tim Penner; 01.07.2016
comment
В настоящее время используется версия 11 Ваканды. Я уже использую MAMP для доступа к MySQL через PhpMyAdmin. Параметр порта MySQL был изменен на 3306. Это отлично работает для меня, и я вижу созданную базу данных. Порт Wakanda setting.waSettings установлен на 8081. Как мне настроить систему, чтобы видеть данные в базе данных MySQL, я немного запутался, что именно изменить, чтобы заставить работать. Надеюсь, это имеет смысл. - person Darrellh; 01.07.2016
comment
Используете ли вы Wakanda Enterprise Edition? и находится ли вызов model.mergeSQLCatalog внутри model.js? - person Tim Penner; 01.07.2016
comment
Да, я попробовал следующий скрипт: model.addSQLCatalog(mysqldb, {hostname: '127.0.0.1', порт: 3306, пользователь: 'root', пароль: 'xxxxxxxx', база данных: 'mydatabasename_db', ssl: ложь, dbType: 'mysql' }); и я получил это сообщение об ошибке: TypeError: JSON.stringify не может сериализовать циклические структуры. Я делаю что-то не так? - person Darrellh; 04.07.2016
comment
Спасибо :) Теперь, работая в системе Mac, я протестировал соединение model.addSQLCatalog, помещенное в файл сценария model.js: model.addSQLCatalog(mysqldb, {hostname: '127.0.0.1', port: 3306, user: 'root' , пароль: 'xxxxxx', база данных: 'databasename_db', ssl: false, dbType: 'mysql' }); Порты были установлены на 80 и 3306 (mysql) соответственно. Мои настройки в файле settings.waSettings были установлены на 0: (IP-адрес прослушивания 127.0.0.1 и TCP-порт 80) - person Darrellh; 04.07.2016

Если я прав, ваша проблема решена? Это работает как для Windows, так и для Mac?

Чтобы возобновить использование ProCONnector, вам потребуется:

  • Корпоративная версия Wakanda
  • Для текущей версии Wakanda v11 вам необходимо использовать в файле model.js API addSQLCatalog().
  • Принимаемые параметры описаны в документе

Обратите внимание, что в следующей версии Wakanda мы предоставим wizzard возможность подключения к другим БД вместо addSQLCatalog(). Это поможет и облегчит процесс.

person FrédéricG    schedule 05.07.2016
comment
Кажется, когда я установил MAMP, возник конфликт с уже установленным сервером Apache2 и назначением порта MAMP. Отключение MAMP решило проблему. Мой вывод - установить MySQL, PHP и PHPMyAdmin отдельно через терминал. Я буду тестировать, чтобы проверить, является ли проблема такой же на платформе решения Windows с предустановленным WAMP. - person Darrellh; 06.07.2016
comment
Ок, отлично. Пожалуйста, держите нас в курсе, чтобы убедиться, что проблема не связана с Вакандой. Спасибо @Darrellh - person FrédéricG; 18.07.2016