#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:
Хорошо решено … Оказывается , пользователь , с которым я подключался к БД , был администратором , но по какой — то причине у меня не было разрешения на просмотры , и именно поэтому я их не видел … создайте пользователя только с локальным доступом только к этой базе данных (рекомендуемая практика) и чтобы я предоставил все разрешения на это.. Я надеюсь , что вы решите эту проблему за других … приветствую вас …