MySQL — система управления базами данных (СУБД) с открытым исходным кодом от компании Oracle. Она была разработана и оптимизирована специально для работы веб-приложений. MySQL является неотъемлемой частью таких веб-сервисов, как Facebook, Twitter, Wikipedia, YouTube и многих других.
Эта статья расскажет, как определять, с чем связаны частые ошибки на сервере MySQL, и устранять их.
Не удаётся подключиться к локальному серверу
Одной из распространённых ошибок подключения клиента к серверу является «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld. sock’ (2)».
Эта ошибка означает, что на хосте не запущен сервер MySQL ( mysqld ) или вы указали неправильное имя файла сокета Unix или порт TCP/IP при попытке подключения.
Убедитесь, что сервер работает. Проверьте процесс с именем mysqld на хосте сервера, используя команды ps или grep, как показано ниже.
Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.
Чтобы проверить состояние службы MySQL, используйте следующую команду:
Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.
Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.
Piano , Казань , По итогам собеседования
Для поиска порта, который прослушивается сервером, используйте команду netstat .
Не удаётся подключиться к серверу MySQL
Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.
Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).
Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:
Ошибки запрета доступа в MySQL
В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).
Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.
В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.
Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):
В консоли вводим команду:
Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:
Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).
Потеря соединения с сервером MySQL
С этой ошибкой можно столкнуться по одной из следующих причин:
- плохое сетевое соединение;
- истекло время ожидания соединения;
- размер BLOB больше, чем max_allowed_packet .
В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).
Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout .
В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my. cnf в разделах [mysqld] или [client] как показано ниже.
Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.
Слишком много подключений
Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections . Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my. cnf .
Недостаточно памяти
Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.
Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:
- если клиент MySQL используется напрямую, запустите его с ключом —quick switch , чтобы отключить кешированные результаты;
- если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).
Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.
MySQL продолжает «падать»
Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.
Вы можете проверить состояние сервера, чтобы определить, как долго он работал.
Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin .
Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:
Заключение
Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:
Ошибка входа в Microsoft SQL Server: 18456
Я получаю эту ошибку при попытке подключиться к SQL Server.
ошибка Microsoft SQL Server: 18456
может кто-нибудь сказать мне, что код ошибки означает?
19 ответов:
-
Правой Кнопкой Мыши на сервере и нажмите кнопку Properties
-
перейти к Security страница
-
под Server authentication выбрать SQL Server and Windows Authentication mode переключатель
-
клик OK
-
перезапустить службы SQL
проверьте эту статью в блоге от команды платформы данных.
https://blogs. msdn. com/b/sql_protocols/archive/2006/02/21/536201.aspx
вам действительно нужно посмотреть на состояние части сообщения об ошибке, чтобы найти основную причину проблемы.
после этого, Google, как исправить эту проблему.
перед открытием щелкните правой кнопкой мыши и выберите «Запуск от имени администратора». Это решило проблему для меня.
сначала см. сведения об ошибке если «государство» «1» Убедитесь, что база данных настроена для проверки подлинности SQL и Windows в разделе SQL server / свойства / безопасность.
для другого состояния см. ответы выше .
- проверьте, включена ли проверка подлинности в смешанном режиме на вашем сервере — > свойства
- затем создайте логин на сервере — > security
- создать пользователя для входа в базу данных
- затем перезагрузите сервер, щелкнув правой кнопкой мыши экземпляр и выберите restart
Я столкнулся с этой проблемой.
пожалуйста, посмотрите на прикрепленные изображения,
пожалуйста, измените свою проверку подлинности sql как SQL server и режим WindowsAuthenication,
и перезапустите Sql server.
- состояние 2 и состояние 5 недопустимый идентификатор пользователя
- Состояние 6 попытка использовать имя Входа Windows с проверкой подлинности SQL
- Состояние 7 вход отключен и несоответствие пароля
- Состояние 8 несоответствие пароля
- состояние 9 неверный пароль
- состояние 11 и состояние 12 допустимый вход, но Ошибка доступа к серверу
- состояние 13 служба SQL Server пауза
- Состояние 18 требуется изменить пароль
просто случилось со мной, и оказалось, что отличается от всех других случаев, перечисленных здесь.
У меня есть два виртуальных сервера, размещенных в одном кластере, каждый с собственным IP-адресом. Узел настроил один из серверов в качестве SQL Server, а другой-в качестве веб-сервера. Однако SQL Server установлен и работает на обоих. Хост забыл упомянуть, какой из серверов является SQL, а какой-Web, поэтому я просто предположил, что первый-Web, второй — язык SQL.
когда я подключился к (что я думал) SQL Server и попытался подключиться через SSMS, выбрав проверку подлинности Windows, я получил ошибку, упомянутую в этом вопросе. Потянув много волос, я прошел через все настройки, включая конфигурацию сети SQL Server, протоколы для MSSQLSERVER:
двойной щелчок TCP / IP дал мне это:
IP-адрес был другого виртуального сервера! Это, наконец, заставило меня понять, что я просто запутался между серверами, и все хорошо работало на втором сервере.
Если вы измените учетные данные пользователя для входа или добавите нового пользователя для входа, то после входа в систему вам придется перезапустить службу SQL Server. за это
перейти к — > службы
затем перейдите к SQL Server (MSSQLSERVER) и остановитесь и начните снова
теперь попробуйте войти в систему, я надеюсь, что вы можете.
спасибо
щелкните правой кнопкой мыши пользователя, перейдите к свойствам, измените базу данных по умолчанию на master Это экран печати изображения, которое показывает, что вы должны проверить, если у вас есть ошибка 19456. Иногда это значение по умолчанию для базы данных, которую пользователь не имеет разрешения
пожалуйста, проверьте, если вы подключены к сети, если это член домена ПК. Кроме того, убедитесь, что вы не находитесь на двух домашних ПК, поскольку ваши маршруты могут быть неверными из-за сетевых показателей. У меня была эта проблема, когда я не мог подключиться к домену проверка подлинности SQL windows переключилась на локальную учетную запись ПК, но зарегистрировала ее как проверку подлинности SQL. Как только я отключил свой беспроводной адаптер и перезагрузился, интеграция Windows переключилась обратно на учетную запись домена и прошла проверку подлинности. Я уже настроил смешанный режим, как вы уже сделали, так что предыдущие сообщения не применяются.
для меня это было неправильно логин и пароль.
сначала перейдите в панель запуска, а затем выполните поиск локальных служб Затем нажмите на кнопку » Просмотр локальных служб» Затем он откроет окно службы, затем перейдите к SQL Server (MSSQLSERVER) щелкните правой кнопкой мыши на нем и нажмите кнопку стоп, а затем снова щелкните правой кнопкой мыши на нем и нажмите кнопку Пуск. Теперь вы можете войти в систему и ввести имя пользователя ‘СА’ и пароль свой пароль.
Я считаю, что это может произойти, если вы пытаетесь войти в систему с пользователем, который определен в Active Directory, но попробуйте использовать «аутентификацию SQL Server» на экране входа в систему. Я не знаю, как указать другого пользователя с проверкой подлинности NTLM/Windows: когда я нажимаю раскрывающийся список проверки подлинности Windows, имя пользователя и пароль отключаются, и я могу войти только как сам.
в моем случае несколько неправильных попыток заблокировали account. To сделайте так, чтобы я попытался выполнить следующий запрос, и это сработало: ИЗМЕНИТЬ ЛОГИН С ПАРОЛЕМ= РАЗБЛОКИРОВАТЬ И не забудьте установить опцию «принудительная Защита паролем» для конкретного пользователя, чтобы снять флажок, щелкнув правой кнопкой мыши на Sql Server -> свойства.
устранение неполадок подключения к SQL Server
в случае, если вы не можете подключиться к аутентификации SQL, и вы пробовали другие решения.
Вы можете попробовать следующее:
проверьте подключение
- Отключить Брандмауэр.
- запустите PortQry на 1434 и проверьте ответ.
проверяем состояние
- попробуйте подключиться к SSMS или sqlcmd и проверьте сообщение.
- состояние 1 является редко документируется, но это просто означает, что вы не имеете права знать истинное состояние.
- посмотрите на файл журнала в каталоге SQL server, чтобы узнать, что такое состояние.
Состояние 5
что ? мой логин не существует ? это прямо здесь, я вижу это в SSMS. Как это может быть ?
наиболее вероятное объяснение, скорее всего, будет правильным.
состояние войти
«вы не смотрите в нужном месте «или»то, что вы видите, это не то, что вы думаете».
локальный конфликт БД и SQLEXPRESS
Если вы подключаетесь к SSMS с проверкой подлинности Windows, и ваш экземпляр называется SQLEXPRESS, вы, вероятно, смотрите на LocalDb и не правильный сервер. Таким образом, вы только что создали свой логин на LocalDb.
при подключении через проверку подлинности SQL Server с SSMS, он будет пытаться подключиться к реальному серверу SQLEXPRESS, где ваш любимый логин еще не существует.
дополнительная информация: Проверьте вкладку параметры подключения, если вы не забыли какую-то странную строку подключения там.
Я столкнулся с той же проблемой. Сначала необходимо включить проверку подлинности в смешанном режиме. Более подробный Как включить проверку подлинности в смешанном режиме
другое работала решение для меня. serever->security->logins->new logins->General-> создайте имя пользователя в качестве имени входа, нажмите кнопку Проверка подлинности sql server добавить пароли
снимите три флажка проверки пароля . Это сработает.
помните, чтобы изменить свойства сервера — > безопасность от Server authentication to SQL Server and Windows Authentication mode
https://tproger. ru/translations/troubleshoot-common-errors-in-mysql/
https://codengineering. ru/q/login-to-microsoft-sql-server-error-18456-23881