Ошибка с представлением MySQL в серверной части Angular9

#mysql #node.js #angular #typescript #backend

#mysql #node.js #угловой #typescript #серверная часть

Вопрос:

У меня есть серверная часть, разработанная в Angular9. Это подключается к БД в MySQL, в которой он выполняет запросы к таблицам и представлениям. Локальный на моем ПК с Windows работает нормально. На сервере Debian он выдает мне сообщение об ошибке, что он не может найти представление, представление существует, и из MySQL оно работает нормально.

  "result": null,
"err": null,
"message": {
    "body": {
        "code": "ER_NO_SUCH_TABLE",
        "errno": 1146,
        "sqlMessage": "Table 'piab_database.pre_license_view' doesn't exist",
        "sqlState": "42S02",
        "index": 0,
        "sql": "SELECT * FROM `pre_license_view`"
    },
    "status": 500,
    "message": "Ha ocurrido un error en su peticion"
 

Что может вызвать эту ошибку? Заранее приветствую и благодарю.

Ответ №1:

Если код работает в Windows, но включен в Unix / Linux (debian), это означает, что у вас возникли проблемы с именем файла в верхнем / нижнем регистре или именем таблицы, проверьте точное совпадение регистра между двумя env.

  Table 'piab_database.pre_license_view' 
 

может быть, имя вашего представления содержит символы верхнего регистра

Комментарии:

1. Но таблицы, подобные piab_database.company_table, работают. Не работает только *_view. Я не знаю почему.

2. затем проверьте, содержит ли имя представления в LINUX один или несколько символов верхнего регистра

3. Я пробую имя в нижнем регистре, вместе и короткое имя, и проблема не в этом. Я думаю, что это mariadb или что-то в этом роде.

Ответ №2:

Хорошо решено … Оказывается , пользователь , с которым я подключался к БД , был администратором , но по какой — то причине у меня не было разрешения на просмотры , и именно поэтому я их не видел … создайте пользователя только с локальным доступом только к этой базе данных (рекомендуемая практика) и чтобы я предоставил все разрешения на это.. Я надеюсь , что вы решите эту проблему за других … приветствую вас …