Это предупреждение появляется при подключении к серверу MySQL / MariaDB с недопустимыми или отсутствующими учетными данными (имя пользователя / пароль). Таким образом, это обычно не проблема с кодом, а проблема конфигурации сервера.
См. Справочную страницу в mysql_connect("localhost", "user", "pw")
для примеров.
Убедитесь, что вы действительно использовали кнопки $username
и $password
.
(using password: NO)
. Только локальный тестовый сервер обычно позволяет подключаться с именем пользователя root
, без пароля и с именем базы данных test
.
Вы можете проверить, действительно ли они исправлены с помощью клиента командной строки: mysql --user="username" --password="password" testdb
Имя пользователя и пароль с учетом регистра и пробел не игнорируется. Если ваш пароль содержит метасимволы, такие как $
, откройте их или поместите пароль в одиночные кавычки .
Большинство хостинг-провайдеров предопределяют учетные записи mysql в отношении учетной записи пользователя unix (иногда просто префиксы или дополнительные числовые суффиксы). См. Документы для шаблона или документации, а также CPanel или любой другой интерфейс для установки пароля.
См. Руководство по MySQL в Добавление учетных записей пользователей с помощью командной строки. При подключении к администратору вы можете выдать запрос, например: CREATE USER 'username'@'localhost' IDENTIFIED BY 'newpassword';
Или использовать Администратор или [ 1137] WorkBench или любой другой графический инструмент для создания, проверки или исправления данных учетной записи.
Если вы не можете исправить свои учетные данные, тогда запрос в Интернете «пожалуйста, помогите» не будет иметь никакого эффекта. Только у вас и вашего хостинг-провайдера есть разрешения и достаточный доступ для диагностики и исправления.
Убедитесь, что вы могли достигнуть сервера базы данных, используя имя хоста, указанное вашим провайдером: ping dbserver.hoster.example.net
Проверьте это с консоли SSH непосредственно на своем веб-сервере. Тестирование с вашего локального клиента разработки на ваш хостинг-сервер редко имеет смысл.
Часто вы просто хотите, чтобы имя сервера было "localhost"
, которое обычно использует локальный именованный сокет, когда он доступен. В других случаях вы можете попробовать "127.0.0.1"
как резерв.
Если ваш сервер MySQL / MariaDB прослушивает другой порт, используйте "servername:3306"
.
Если это не удается, тогда есть проблема с брандмауэром.
При использовании констант , таких как, например, [11144]. DB_USER
или DB_PASSWORD
, убедитесь, что они на самом деле определены .
Если вы получите "Warning: Access defined for 'DB_USER'@'host'"
и "Notice: use of undefined constant 'DB_PASS'"
, то это ваша проблема.
Убедитесь, что ваш, например, xy/db-config.php
был фактически включен и что угодно.
Проверьте правильность установки GRANT
разрешений .
Недостаточно иметь пару username
+ password
.
Каждая учетная запись MySQL / MariaDB может иметь прикрепленный набор разрешений.
Те могут ограничить, к каким базам данных вам разрешено подключаться, из которых клиент или сервер может возникнуть соединение и какие запросы разрешены.
Предупреждение «Доступ запрещен» может также отображаться для вызовов mysql_query
, если у вас нет прав на SELECT
из определенной таблицы или INSERT
/ UPDATE
, и чаще всего DELETE
.
Вы можете адаптировать разрешения учетной записи при подключении к каждому клиенту командной строки с помощью учетной записи администратора с запросом типа: GRANT ALL ON yourdb.* TO 'username'@'localhost';
Если предупреждение появляется сначала с помощью Warning: mysql_query(): Access denied for user ''@'localhost'
, тогда у вас может быть php.ini-preconfigured учетной записи / пароля .
Убедитесь, что mysql.default_user=
и mysql.default_password=
имеют значимые значения.
Часто это конфигурация провайдера. Поэтому обратитесь к их поддержке несоответствий.
Найдите документацию вашего хостинг-провайдера:
, например. HostGator , GoDaddy , 1 и 1 , DigitalOcean , BlueHost , DreamHost , ] MediaTemple , ixWebhosting , lunarhosting или просто google yours ».
Еще раз обратитесь к своему провайдеру хостинга через свои каналы поддержки.
Обратите внимание, что вы также можете исчерпать доступный пул соединений . Вы получите доступ к запрещенным предупреждениям для слишком большого количества параллельных подключений.
Ваша версия клиента libmysql может быть несовместимой с сервер базы данных. Обычно MySQL и MariaDB-серверы можно получить с помощью PHP, скомпилированных в драйвере. Если у вас есть пользовательская настройка или устаревшая версия PHP, а также гораздо более новый сервер базы данных или значительно устаревший - тогда несоответствие версии может препятствовать подключению. (Нет, вам нужно исследовать себя. Никто не может угадать вашу настройку).
Дополнительные ссылки:
Кстати, вы, вероятно, больше не хотите использовать функции
blockquote>mysql_*
[1156 ]. Новички часто мигрируют в mysqli , что, однако, так же утомительно. Вместо этого прочитайте в PDO и подготовленные утверждения .$db = new PDO("mysql:host=localhost;dbname=testdb", "username", "password");
Часть с HTTP://
, FTP://
, и т.д. называют Схемы URI
, можно зарегистрировать собственное через реестр.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Источники: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml, http://msdn.microsoft.com/en-us/library/aa767914 (v=vs.85) .aspx
Это отличается для каждого браузера в IE и окнах, необходимо создать то, что они называют сменным обработчиком протокола.
основные шаги следующие:
См. Об Асинхронных Сменных Протоколах на MSDN для получения дополнительной информации о стороне окон. В окнах SDK существует также образец.
А быстрый Google также показал эту статью о codeproject: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Наконец, как парень безопасности я должен указать, что этот код должен быть укрепленным сражением. Это в высоком риске, потому что, чтобы сделать это надежно Вы не можете сделать этого в управляемом коде и иметь, чтобы сделать это в C++ (я предполагаю, что Вы могли использовать VB6). Необходимо рассмотреть, необходимо ли действительно сделать это и если Вы делаете, разработайте его тщательно и кодируйте его надежно. Взломщик может легко управлять содержанием, которое передается Вам просто включая ссылку на странице. Например, если у Вас есть простое переполнение буфера тогда, никто лучше не делает это: <a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Сильно рассматривают использование strsafe и новых безопасных методов CRT, включенных в VC8 и выше компиляторов. См. http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx , если Вы понятия не имеете, о чем я говорю.
Вот список зарегистрированного схемы URI . У каждого есть RFC - документ, определяющий его, который является почти стандартом. RFC говорит разработчикам новых приложений (таким как браузеры, клиенты ftp, и т.д.), что они должны поддерживать. При необходимости в новом протоколе основного уровня можно использовать незарегистрированный. Другие ответы говорят Вам как. Следует иметь в виду, что можно сделать много вещей с существующими протоколами, таким образом получив их существующие реализации.
Для большинства продуктов Microsoft (Internet Explorer, Office, "открывают файл" диалоговые окна и т.д.) Вы можете регистрировать приложение , которое будет выполнено, когда URI с соответствующим префиксом открыт. Это - часть более общих объяснение - как реализовать Ваш собственный протокол.
Это назвало протокол. Единственная вещь, которая препятствует тому, чтобы Вы делали свой собственный протокол, является Вами, имеют к:
Windows делает № 1 действительно легким, во многих случаях это - все, в чем Вы на самом деле нуждаетесь. То есть:
URLПервый раздел называют протоколом, и да можно зарегистрировать собственное. В Windows (где я предполагаю выполнение этого, учитывая тег C# - извините Моно вентиляторы), он сделал с помощью реестра .
Протокол?
я нашел это, это, кажется, локальная установка для компьютера...
Вы не должны действительно делать никакой регистрации как таковой. Я видел, что много программ, как emule, создают свой собственный протокол specificier (это - то, что я думаю, что это называют). После этого в основном просто необходимо установить некоторые значения в реестре относительно того, какая программа обрабатывает тот протокол. Я не уверен, существует ли какой-либо официальный реестр спецификаторов протокола. Нет действительно очень, чтобы мешать Вам создать Ваш собственный спецификатор протокола для Вашего собственного приложения, если Вы хотите, чтобы люди открыли Ваше приложение от своего браузера.