Определение приложения соединяет каналом в EXE Python, сгенерированном pyInstaller

[1171] Предупреждение: mysql_connect (): доступ запрещен для имени пользователя '@' host '[1171] [11108] Это предупреждение появляется при подключении к серверу MySQL / MariaDB с недопустимыми или отсутствующими учетными данными (имя пользователя / пароль). Таким образом, это обычно [1164] не [1164] проблема с кодом, а проблема конфигурации сервера. [11108] [11146] [1172] [11109] См. Справочную страницу в [1133] [111] [1133] для примеров. [11109] [1172] [1173] [11110] Убедитесь, что вы действительно использовали кнопки [112] и [113]. [11110] [11177] [11154] Необычно, что вы получаете доступ без пароля - вот что произошло, когда Предупреждение: сказано [114]. [11154] [11155] [11111] Только локальный тестовый сервер обычно позволяет подключаться с именем пользователя [115], без пароля и с именем базы данных [116]. [11111] [11155] [11156] [11112] Вы можете проверить, действительно ли они [11142] исправлены [11142] с помощью клиента командной строки: [1159] [1159] [117] [11112] [11156] [11157] [11113] Имя пользователя и пароль [1165] с учетом регистра [1165] и пробел [1166] не [1166] игнорируется. Если ваш пароль содержит метасимволы, такие как [118], откройте их или поместите пароль в одиночные кавычки [1134] [1134]. [11113] [11157] [11158] [11114] Большинство хостинг-провайдеров предопределяют учетные записи mysql в отношении учетной записи пользователя unix (иногда просто префиксы или дополнительные числовые суффиксы). См. Документы для шаблона или документации, а также CPanel или любой другой интерфейс для установки пароля. [11114] [11158] [11159] [11115] См. Руководство по MySQL в [1135] Добавление учетных записей пользователей [1135] с помощью командной строки. При подключении к [1167] администратору [1167] вы можете выдать запрос, например: [1160] [1160] [119] [11115] [11159] [11160] [11116] Или использовать [1136] Администратор [1136] или [ 1137] WorkBench [1137] или любой другой графический инструмент для создания, проверки или исправления данных учетной записи. [11116] [11160] [11161] [11117] Если вы не можете исправить свои учетные данные, тогда запрос в Интернете «пожалуйста, помогите» не будет иметь никакого эффекта. Только у вас и вашего хостинг-провайдера есть разрешения и достаточный доступ для диагностики и исправления. [11117] [11161] [11177] [1173] [1182] [11118] Убедитесь, что вы [11143] могли достигнуть [11143] сервера базы данных, используя имя хоста, указанное вашим провайдером: [1161] [1161] [1110] [11118] [11178] ] [11162] [11119] Проверьте это с консоли SSH непосредственно на своем веб-сервере. Тестирование с вашего локального клиента разработки на ваш хостинг-сервер редко имеет смысл. [11119] [11162] [11163] [11120] Часто вы просто хотите, чтобы имя сервера было [1111], которое обычно использует локальный именованный сокет, когда он доступен. В других случаях вы можете попробовать [1112] как резерв. [11120] [11163] [11164] [11121] Если ваш сервер MySQL / MariaDB прослушивает другой порт, используйте [1113]. [11121] [11164] [11165] [11122] Если это не удается, тогда есть проблема с брандмауэром. [11122] [11165] [11178] [1182] [1187] [11123] При использовании констант [11144] [11144], таких как, например, [11144]. [1114] или [1115], убедитесь, что они на самом деле определены [1138] [1138]. [11123] [11179] [11166] [11124] Если вы получите [1116] и [1117], то это ваша проблема. [11124] [11166] [11167] [11125] Убедитесь, что ваш, например, [1118] был фактически включен и что угодно. [11125] [11167] [11179] [1187] [1190] [11126] Проверьте правильность установки [11145] [1139] [1119] [1139] разрешений [11145]. [11126] [11180] [11168] [11127] Недостаточно иметь пару [1120] + [1121]. [11127] [11168] [11169] [11128] Каждая учетная запись MySQL / MariaDB может иметь прикрепленный набор разрешений. [11128] [11169] [11170] [11129] Те могут ограничить, к каким базам данных вам разрешено подключаться, из которых клиент или сервер может возникнуть соединение и какие запросы разрешены. [11129] [11170] [11171] [11130] Предупреждение «Доступ запрещен» может также отображаться для вызовов [1140] [1122] [1140], если у вас нет прав на [1123] из определенной таблицы или [1124] / [1125], и чаще всего [1126]. [11130] [11171] [11172] [11131] Вы можете [1141] адаптировать разрешения учетной записи [1141] при подключении к каждому клиенту командной строки с помощью учетной записи администратора [1168] [1168] с запросом типа: [1162] [1162] [1127] [11131] [11172] [11180] [1190] [1196] [11132] Если предупреждение появляется сначала с помощью [1128], тогда у вас может быть [1142] php.ini-preconfigured учетной записи / пароля [1142]. [11132] [11181] [11173] [11133] Убедитесь, что [1129] и [1130] имеют значимые значения. [11133] [11173] [11174] [11134] Часто это конфигурация провайдера. Поэтому обратитесь к их поддержке несоответствий. [11134] [11174] [11181] [1196] [1199] [11135] Найдите документацию вашего хостинг-провайдера: [11135] [11182] [11175] [11136], например. [1143] HostGator [1143], [1144] GoDaddy [1144], [1145] 1 и 1 [1145], [1146] DigitalOcean [1146], [1147] BlueHost [1147], [1148] DreamHost [1148], [1149] ] MediaTemple [1149], [1150] ixWebhosting [1150], [1151] lunarhosting [1151] или просто google yours ». [11136] [11175] [11176] [11137] Еще раз обратитесь к своему провайдеру хостинга через свои каналы поддержки. [11137] [11176] [11182] [1199] [11102] [11138] Обратите внимание, что вы также можете [1169] исчерпать доступный пул соединений [1169]. Вы получите доступ к запрещенным предупреждениям для слишком большого количества параллельных подключений. [11138] [11102] [11103] [11139] Ваша версия клиента libmysql [1170] может быть несовместимой [1170] с сервер базы данных. Обычно MySQL и MariaDB-серверы можно получить с помощью PHP, скомпилированных в драйвере. Если у вас есть пользовательская настройка или устаревшая версия PHP, а также гораздо более новый сервер базы данных или значительно устаревший - тогда несоответствие версии может препятствовать подключению. (Нет, вам нужно исследовать себя. Никто не может угадать вашу настройку). [11139] [11103] [11146] [11140] Дополнительные ссылки: [11140] [11153] [11104] [1152] Serverfault: доступ к mysql запрещен для «root» @ «имя компьютера» [1152] [11104] [11105] [1153] Предупреждение : mysql_connect (): Access denied [1153] [11105] [11106] [1154] Предупреждение: mysql_select_db () Доступ запрещен для пользователя '' @ 'localhost' (с использованием пароля: НЕТ) [1154] [11106] [11107] [ 1155] Доступ запрещен для пользователя 'root' @ 'localhost' с PHPMyAdmin [1155] [11107] [11153]
[11141] Кстати, вы, вероятно, больше не хотите использовать функции [1156] [1131] [1156 ]. Новички часто мигрируют в [1157] mysqli [1157], что, однако, так же утомительно. Вместо этого прочитайте в [1158] PDO и подготовленные утверждения [1158]. [1163] [1163] [1132] [11141]
50
задан Mathias711 11 February 2016 в 22:11
поделиться

1 ответ

Я нашел решение. Необходимо проверить, работает ли приложение как сценарий или как замороженный exe:

import os
import sys

config_name = 'myapp.cfg'

# determine if application is a script file or frozen exe
if getattr(sys, 'frozen', False):
    application_path = os.path.dirname(sys.executable)
elif __file__:
    application_path = os.path.dirname(__file__)

config_path = os.path.join(application_path, config_name)
94
ответ дан Georg Schölly 7 November 2019 в 10:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: