Ошибка при подключении к mysql серверу

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, как показано ниже.

$ ps xa | grep mysqld | grep -v mysqld

Если эти команды не показывают выходных данных, то сервер БД не работает. Поэтому клиент не может подключиться к нему. Чтобы запустить сервер, выполните команду systemctl.

$ sudo systemctl start mysql        #Debian/Ubuntu
$ sudo systemctl start mysqld       #RHEL/CentOS/Fedora

Чтобы проверить состояние службы MySQL, используйте следующую команду:

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Если в результате выполнения команды произошла ошибка службы MySQL, вы можете попробовать перезапустить службу и ещё раз проверить её состояние.

$ sudo systemctl restart mysql
$ sudo systemctl status mysql

Если сервер работает (как показано) и вы по-прежнему видите эту ошибку, вам следует проверить, не заблокирован ли порт TCP/IP брандмауэром или любой другой службой блокировки портов.

Для поиска порта, который прослушивается сервером, используйте команду netstat.

$ sudo netstat -tlpn | grep "mysql"

Ещё одна похожая и часто встречающаяся ошибка подключения — «(2003) Can’t connect to MySQL server on ‘server’ (10061)». Это означает, что в сетевом соединении было отказано.

Следует проверить, работает ли в системе сервер MySQL (смотрите выше) и на тот ли порт вы подключаетесь (как найти порт, можно посмотреть выше).

Похожие частые ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

ERROR 2003: Cannot connect to MySQL server on 'host_name' (111)
ERROR 2002: Cannot connect to local MySQL server through socket '/tmp/mysql.sock' (111)

Ошибки запрета доступа в MySQL

В MySQL учётная запись (УЗ) определяется именем пользователя и клиентским хостом, с которого пользователь может подключиться. УЗ может также иметь данные для аутентификации (например, пароль).

Причин для запрета доступа может быть много. Одна из них связана с учётными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении. Это означает, что имя пользователя, указанное в соединении, может не иметь прав доступа к базе данных.

В MySQL есть возможность создавать учётные записи, позволяющие пользователям клиентских программ подключаться к серверу и получать доступ к данным. Поэтому при ошибке доступа проверьте разрешение УЗ на подключение к серверу через клиентскую программу.

Увидеть разрешённые привилегии учётной записи можно, выполнив в консоли команду SHOW GRANTS
Входим в консоль (пример для Unix, для Windows консоль можно найти в стартовом меню):

В консоли вводим команду:

> SHOW GRANTS FOR 'tecmint'@'localhost';

Дать привилегии конкретному пользователю в БД по IP-адресу можно, используя следующие команды:

> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;

Ошибки запрещённого доступа могут также возникнуть из-за проблем с подключением к MySQL (см. выше).

Потеря соединения с сервером MySQL

С этой ошибкой можно столкнуться по одной из следующих причин:

  • плохое сетевое соединение;
  • истекло время ожидания соединения;
  • размер BLOB  больше, чем max_allowed_packet.

В первом случае убедитесь, что у вас стабильное сетевое подключение (особенно, если подключаетесь удалённо).

Если проблема с тайм-аутом соединения (особенно при первоначальном соединении MySQL с сервером), увеличьте значение параметра connect_timeout.

В случае с размером BLOB нужно установить более высокое значение для max_allowed_packet в файле конфигурации /etc/my.cnf в разделах [mysqld] или [client] как показано ниже.

[mysqld]
connect_timeout=100
max_allowed_packet=500M

Если файл конфигурации недоступен, это значение можно установить с помощью следующей команды.

> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;

Слишком много подключений

Эта ошибка означает, что все доступные соединения используются клиентскими программами. Количество соединений (по умолчанию 151) контролируется системной переменной max_connections. Устранить проблему можно, увеличив значение переменной в файле конфигурации /etc/my.cnf.

[mysqld]
max_connections=1000

Недостаточно памяти

Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.

Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:

  • если клиент MySQL используется напрямую, запустите его с ключом --quick switch, чтобы отключить кешированные результаты;
  • если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).

Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.

$ sudo apt-get install mysqltuner     #Debian/Ubuntu
$ sudo yum install mysqltuner         #RHEL/CentOS/Fedora
$ mysqltuner

MySQL продолжает «падать»

Если такая проблема возникает, необходимо выяснить, заключается она в сервере или в клиенте. Обратите внимание, что многие сбои сервера вызваны повреждёнными файлами данных или индексными файлами.

Вы можете проверить состояние сервера, чтобы определить, как долго он работал.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Чтобы узнать время безотказной работы сервера, запустите команду mysqladmin.

$ sudo mysqladmin version -p 

Кроме того, можно остановить сервер, сделать отладку MySQL и снова запустить службу. Для отображения статистики процессов MySQL во время выполнения других процессов откройте окно командной строки и введите следующее:

$ sudo mysqladmin -i 5 status

Или

$ sudo mysqladmin -i 5 -r status

Заключение

Самое важное при диагностике — понять, что именно вызвало ошибку. Следующие шаги помогут вам в этом:

  • Первый и самый важный шаг — просмотреть журналы MySQL, которые хранятся в каталоге /var/log/mysql/. Вы можете использовать утилиты командной строки вроде tail для чтения файлов журнала.
  • Если служба MySQL не запускается, проверьте её состояние с помощью systemctl. Или используйте команду journalctl (с флагом -xe) в systemd.
  • Вы также можете проверить файл системного журнала (например, /var/log/messages) на предмет обнаружения ошибок.
  • Попробуйте использовать такие инструменты, как Mytop, glances, top, ps или htop, чтобы проверить, какая программа использует весь ресурс процессора или блокирует машину. Они также помогут определить нехватку памяти, дискового пространства, файловых дескрипторов или какого-либо другого важного ресурса.
  • Если проблема в каком-либо процессе, можно попытаться его принудительно остановить, а затем запустить (при необходимости).
  • Если вы уверены, что проблемы именно на стороне сервера, можете выполнить команды: mysqladmin -u root ping или mysqladmin -u root processlist, чтобы получить от него ответ.
  • Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.

Перевод статьи «Useful Tips to Troubleshoot Common Errors in MySQL»

MySQL — система управления базами данных (СУБД). С её помощью можно управлять базами данных (БД) на сервере. 

В зависимости от операционной системы, на сервере может быть установлена СУБД MySQL или MariaDB — их функционал сильно похож, и для работы разницы, как правило, нет. 

В данной статье рассмотрим, с какими проблемами вы можете столкнуться при работе с MySQL и как их решить. 

  • Создание базы через ISPmanager
    • Раздела «Базы данных» нет в меню
  • Не подходит пароль к серверу баз данных
  • Где искать ошибки?
    • Перечень возможных проблем
      • Table ‘./site/content’ is marked as crashed and should be repaired
      • mysql_connect() [function.mysql-connect]: Access denied for user ‘user_xxx’@’localhost’ (using password: YES)
      • Не удалось подключиться к базе данных
      • В панели ISPmanager не удается создать базу данных, ошибка «Недостаточно данных»
      • MySQL не запускается ни в сервисах, ни через консоль
      • Решение проблем с кодировками MySQL
  • Русификация MySQL

Создание базы через ISPmanager

Панель управления ISPmanager значительно упрощает управление СУБД и базами данных. На корректно работающем VDS создание базы займет не больше 5 минут.

В левом меню ISPmanager переходим в раздел Базы данных и нажимаем Создать базу данных.

Заполняем необходимые поля: имя БД, владелец БД (должен совпадать с владельцем сайта), сервер БД, кодировка БД, после чего создаем нового пользователя БД (либо выбираем существующего) и задаем пароль. Рекомендуем создавать сложные пароли. 

Подробнее о создании Базы данных можно узнать в отдельной статье.

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

Раздела «Базы данных» нет в меню

Есть 2 возможных варианта решения проблемы:

1. На сервере не запущен сервер баз данных MySQL

Проверить, активен ли сервис, вы можете в разделе Мониторинг и журналы панели ISPmanager. Попробуйте запустить или перезапустить службу mariadb (в ОС CentOS и Debian) или mysql (в ОС Ubuntu) с помощью кнопок в панели.

Если не помогло, перезапустите из консоли командой systemctl restart mysql для Ubuntu/Debian или командой systemctl restart mariadb для Centos 7.

2. Проблемы с подключением к базе данных

Перейдите в раздел Серверы БД, двойным кликом откройте свойства и нажмите Сохранить, ничего не меняя. Это принудительно обновит информацию о MySQL в панели управления. После этого обновите страницу — раздел Базы данных должен появиться.

Не подходит пароль к серверу баз данных

Случается так, что пароль root от MySQL-сервера утерян и надо установить новый. Делается следующим образом:

Останавливаем MySQL-сервер:

В Debian/Ubuntu:

# systemctl stop mysql

В CentOS 7:

# systemctl stop mariadb

или

# systemctl stop mysqld

Запускаем его без проверки таблиц прав:

# mysqld_safe --skip-grant-tables &

Заходим root’ом без пароля:

# mysql -uroot

Меняем пароль:

# use mysql;

MySQL < 5.7

# UPDATE user SET Password=PASSWORD("new_password") WHERE User='root';

MySQL => 5.7

# UPDATE user SET authentication_string=PASSWORD("new_password") WHERE User='root';

Проверить версию MySQL можно с помощью команды:

# mysql –version

или

# mariadb –version

Продолжаем для всех версий

# FLUSH PRIVILEGES;

В Debian/Ubuntu:

# systemctl restart mysql

В Centos 7:

# systemctl restart mariadb

или

# systemctl restart mysqld

Авторизуемся как root с паролем new_password

# mysql -uroot -p

После вводим новый пароль.

Где искать ошибки?

MySQL — свободная реляционная система управления базами данных. Поиск проблем с сервисом лучше всего начинать с изучения логов. Для этого необходимо подключиться на сервер по SSH. Их расположение разнится в зависимости от используемой файловой системы. В конфигурационном файле my.cnf нужно искать строки log и log-error, чтобы определить, где находятся логи. Также можно воспользоваться mysql запросом:

show variables like '%log%';

Если логирование не включено, сделать это можно следующим образом. Зайти в файл:

/etc/my.cnf   #Centos
/etc/mysql/my.cnf  #Debian
/etc/mysql/mysql.conf.d/mysql.cnf #Ubuntu

Расположение конфигурационного файла может отличаться в зависимости от дистрибутива или CMS.

И в секцию [mysqld] добавить строку:

log-error=/var/log/mysql-errors.log

Выйти из файла, выполнить команды:

touch /var/log/mysql-errors.log
chown mysql:mysql /var/log/mysql*
chmod 640 /var/log/mysql*

Следующая команда включит просмотр созданного лога в режиме реального времени(tail –f) и оставить его в фоне(&) что бы можно было параллельно запускать другие команды:

tail –f /var/log/mysql-errors.log &

Данная команда позволяет проводить действия с БД или сайтов и одновременно смотреть на ошибки в логе. Чтобы остановить команду, нажмите Ctrl+C.

Перечень возможных проблем

Table ‘./site/content’ is marked as crashed and should be repaired

Такое сообщение может появиться в логах или на сайте. Оно означает, что таблица одной из БД «побилась» и требуется ее восстановление. Необходимо подключится на сервер по SSH, выполнить команду, которая проверит все базы данных на предмет ошибок

mysqlcheck --repair --analyze --optimize --all-databases -u<USER> –p<PASSWORD>

Если эта команда выдаёт ошибку, вставьте ключи раздельно:

mysqlcheck --repair --all-databases -u<USER> –p<PASSWORD>
mysqlcheck --analyze --all-databases -u<USER> –p<PASSWORD>
mysqlcheck --optimize --all-databases -u<USER> –p<PASSWORD>

где

  • <USER> — имя пользователя базы данных или root,
  • <PASSWORD> — заменить на пароль пользователя или root от MySQL (его можно посмотреть в ISPmanager — Базы данных — Серверы БД — двойной клик на сервер MySQL для просмотра пароля root (либо Базы данных — двойной клик на нужную базу данных и двойной клик на нужного пользователя).

Либо можно выполнить исправление конкретной базы данных:

mysqlcheck --repair --analyze --optimize <DB> -u<USER> -p<PASSWORD>

где

  • <USER> — имя пользователя базы данных или root,
  • <PASSWORD> — заменить на пароль пользователя или root от MySQL (его можно посмотреть в ISPmanager — Базы данных — Серверы БД — двойной клик на сервер MySQL для просмотра пароля root (либо Базы данных — двойной клик на нужную базу данных и двойной клик на нужного пользователя),
  • <BD> — база данных, которой требуется исправление.

mysql_connect() [function.mysql-connect]: Access denied for user ‘user_xxx’@’localhost’ (using password: YES)

Чаще всего связана с тем, что в настройках сайта указаны не верные данные (логин и/или пароль) для подключения к базе. Вариант решения: посмотреть в админ-панели сайта данные пользователя, пароль и название базы для подключения к базе. Зайти в ISPmanager — Базы данных — кликнуть на базу, затем на пользователя и в графу Пароль поставить пароль из админ-панели.

Может быть обратная ситуация, когда в панели ISPmanager указаны верные данные, а в конфигурационных файлах указаны неверные. В таком случае нужно править конфигурационные файлы, для CMS Bitrix, например, это /bitrix/.settings.php и/bitrix/php_interface/dbconn.php.

На сайте ошибка «Не удалось подключиться к базе данных»

В зависимости от используемой CMS эта ошибка может по-разному выглядеть:

Возникла ошибка при подключении сервера баз данных MySQL
Can't connect to local MySQL server
Error connect to mysql
Unable to connect to the database:Could not connect to ...

Подключится на сервер по SSH, выполнить:

 systemctl restart mysql                            #перезапуск MySQL для Ubuntu, Debian
 systemctl restart mariadb                          #перезапуск MySQL для Centos 7
 ps axuw | grep mysql                               #Эта команда должна вывести список процессов MySQL. 
                                                    #Если ничего не вывела – значит, MySQL не запустился.

Убедится что в ISPmanager, в разделе Службы лампочка mysql или mariadb горит.

В панели ISPmanager не удается создать базу данных, ошибка «Недостаточно данных»

Это значит у вас в ISPmanager — Серверы БД не создано ни одного сервера баз данных. Для создания нажмите на Серверы БД, далее на Создать сервер. В полях введите название сервера БД (например, MySQL), придумайте имя пользователя и пароль. Также в панели ISPmanager можно установить более 1 СУБД, альтернативные СУБД будут работать в контейнерах Docker.

MySQL не запускается ни в сервисах, ни через консоль

При запуске через консоль ошибки могут быть вида:

cant connect to local mysql server throught socket /var/run/mysqld/mysql.d.sock
/etc/init.d/mysql start
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
/usr/local/etc/rc.d/mysql-server restart
mysql not running? (check /var/db/mysql/peroksid.ispvds.com.pid).
Starting mysql.

Проверить свободное место на диске:

df –h        #общая информация
du –hs /*  #сколько занимает конкретные папки

Если не осталось места, удалить ненужные файлы.

Частая ситуация, когда логи сайтов разрастаются и места на диске свободного не остается, MySQL не может нормально работать (справедливо и для всех остальных сервисов – apache, exim и т.д.)

Снова пробуем перезапустить MySQL:

systemctl restart mysql        #перезапуск MySQL для Ubuntu и Debian
systemctl restart mariadb      #перезапуск MySQL для Centos 7

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

130929 06:16:05 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
130929  6:16:05 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
130929  6:16:05 [Warning] option 'max_allowed_packet': unsigned value 5824839680 adjusted to 1073741824
Unknown suffix '-' used for variable 'sort_buffer_size' (value '--read_buffer_size=256K')
130929  6:16:05 [Warning] option 'sort_buffer_size': unsigned value 0 adjusted to 32776
130929  6:16:05 [ERROR] /usr/local/libexec/mysqld: Error while setting value '--read_buffer_size=256K' to 'sort_buffer_size'
130929  6:16:05 [ERROR] Aborting

Смотрим записи с меткой [ERROR]. В логе выше ошибка «Error while setting value ‘—read_buffer_size=256K’ to ‘sort_buffer_size’» означает, что в конфиге my.cnf неверно прописана директива ‘sort_buffer_size. Этот случай приведен только для примера. В каждом конкретном случае лог будет различаться. Ошибки могут быть самые разные. Дальнейшие действия зависят от конкретной ошибки и требуют детального разбирательства.

Решение проблем с кодировками MySQL

Чтобы решить проблему — достаточно понять логику работы. MySQL, начиная с версии 4.1, знает, что такое кодировки и как с ними работать. Если до 4.0 она работала с байтами, то теперь работает с символами.

MySQL написали шведы, поэтому кодировкой по умолчанию (сразу после установки) является latin1, а «сравнение» (последовательность букв, алфавит; влияет на сортировки) — latin1_swedish.

Итак, где кодировки указываются.

1. Кодировка конкретной базы/таблицы/столбца. Это кодировка, в которой MySQL будет хранить данные. Например, если у вас данные в cp1251, то будет большой ошибкой указывать для хранения кодировку latin1. В ней нет соответствий для русских символов, все они будут заменены на вопросы.

Кодировку хранения можно задать, например, так.В терминале открываем MySQL с помощью команды mysql или mysql -u имя_пользователя -p, вводим пароль, после чего пишем в консоли MySQL:

create database `имя базы` default charset cp1251;

Если кодировка не указана — будет использовано значение параметра default-character-set из файла /etc/my.cnf (либо latin1, если параметра нет). Кстати, именно этот параметр редактирует ISPmanager в свойствах сервера баз данных.

2. Кодировка соединения. Это кодировка, в которой клиент (скрипт пользователя, форум, mysql-клиент и т.д.) общается с MySQL. Когда клиент подсоединяется к серверу, тот ему сообщает значение параметра default-character-set. Таким образом они договариваются о том, в какой кодировке будут общаться. Кодировку общения можно изменить запросом (его лучше выполнять сразу после соединения с сервером):

set names cp1251

где вместо cp1251 вы можете указать нужную кодировку.

Кстати, множество современных правильных скриптов именно это и делают.

Одна сложность: есть ряд кривых клиентов, которые всего этого не понимают и общаются в какой-то своей кодировке. Персонально для них можно написать в /etc/my.cnf, секцию [mysqld]:

[mysqld]
set init_connect="set names utf8"

где вместо utf8 вы можете указать нужную кодировку.

Что это означает? Сразу после подсоединения любого клиента, MySQL выполнит запрос set names utf8, как будто смену кодировки общения запросил сам клиент.

Это всё, что нужно знать для решения любой проблемы с кодировками в MySQL. Осталось несколько уточнений (самое интересное):

phpMyAdmin, mysqldump — обычные клиенты, на них действуют те же самые правила. Одно «но»: на все PHP-скрипты (включая phpMyAdmin) действует default-character-set из секции [client] в my.cnf. Для mysqldump есть отдельная секция [mysqldump]. Часто бывает так, что команда mysqldump «не видит» секцию [mysqldump], поэтому в случаях, когда необходимо делать дамп БД в определенной кодировке, лучше использовать mysqldump с параметром --default-character-set=utf8 (вместо utf8 укажите нужную кодировку). ISPmanager прописывает default-character-set во все секции.

Дамп базы — это обычный набор MySQL-команд. Если вы в самое его начало напишете set names cp1251;, то эта команда тоже выполнится, и MySQL будет считать, что дальше все данные в дампе идут в кодировке cp1251.

Кодировки в MySQL-командах пишутся без кавычек и без «-» (дефисов). Популярные в России кодировки: utf8, cp866 (DOS), cp1251 (windows-1251), koi8r, utf8mb4.

И, наконец, пара советов:

  • Если вы в этом новичок, постарайтесь свести всё к одной кодировке. Пусть у вас дамп и default-character-set (напомню, влияет на кодировку хранилища при создании таблиц и на кодировку общения с клиентом) будет в одной кодировке. Это избавит от путаницы и решит 90% проблем.
  • Если есть возможность — используйте консольную утилиту mysqldump. phpMyAdmin — это дополнительная прослойка, которая лишь добавляет свою путаницу и свои баги.

Русификация MySQL

Чтобы русифицировать базу данных MySQL, не вдаваясь в подробности почему и как, проделайте следующие процедуры:

1. В конфигурационном файле /etc/my.cnf добавьте следующие строчки:

Под разделом [client]:

default-character-set=cp1251

Под разделом [mysqld]:

character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect = "set names cp1251"

2. После этого перезапустите базу MySQL или весь ваш виртуальный сервер (из ISPmanager или консоли).

I installed MySQL using mysql-installer-5.5.20.0.msi on Windows 7.
From the cmd window, I run «mysqlshow -u root -p». It asked for a password, then returned this error: «Can’t connect to MySQL server on ‘localhost’ (10061)» This is a bad indication of partially failed/successful installation.

After reading the page, http://dev.mysql.com/doc/refman/5.5/en/windows-troubleshooting.html, it told me to find an error log (.err) in C:Program FilesMySQLMySQL Server 5.5data. The directory exists but there is no log file.

I have a feeling this is related to the tight security of Windows 7, especially when installing a Unix based software. And yes, I am the Administrator on my PC.

Any help or suggestions is appreciated. And I can return a favor by answering Java and SQL query questions.

asked Jun 5, 2012 at 6:31

The Original Android's user avatar

12

Please Try the following steps:

  1. c:mysqlbin>mysqld —install
  2. c:mysqlbin>mysqld —initialize

then press «Windows key + R» write «services.msc«, run as admin

start MySQL service.

K. Yen's user avatar

K. Yen

1932 silver badges14 bronze badges

answered Jan 19, 2016 at 7:21

maheshDeshmukh's user avatar

5

I also faced the same issue and resolved it by below setups:

  1. Check the MYSQL service in the windows service. If it is there and not running then start it. It will solve your problem.

    You can find the services window by navigating to windows Start menu and typing ‘services’ in the search bar. Select the ‘Services’ option with the cogs next to it (not the executable file) and the below window will appear. Scroll down to find ‘MySql (version)’. When you select MySql you should see an option in the left pane that says ‘Start the service’. Click this and a dialogue should appear to indicate Windows is attempting to start the service. Once started the left pane will now give you the option to stop, pause and restart the service and you will now be able to connect to your MySql from the windows cmd line.

enter image description here

  1. If MYSQL service is not present in windows service then follow below setups.

    a. Open cmd as administrator.

    b. cd to C:Program Files (x86)MySQLMySQL Server 5.6bin

    c. Run the command:
    C:Program Files (x86)MySQLMySQL Server 5.6bin>mysqld.exe —install

    d. Check the MySql in the windows service, And if it is not running, Start it by clicking on the service.

    e. If your using XAMMP . Start MySQL at the XAMMP control Panel.


Burkely91's user avatar

answered Apr 29, 2017 at 13:23

Programming-Lover's user avatar

5

this issue is very to solve by windows server users

  1. go to this path
    C:Program FilesMySQLMySQL Server 5.1bin

  2. run this tool «MySQLInstanceConfig.exe»

and config the instatnce again and problem solved

answered Nov 18, 2013 at 9:05

shay lami's user avatar

shay lamishay lami

3943 silver badges2 bronze badges

4

The simple solution that worked for me is: change localhost to 127.0.0.1 in your database.yml or in your script if writing one.

doubleDown's user avatar

doubleDown

7,9881 gold badge32 silver badges48 bronze badges

answered Oct 27, 2012 at 3:16

Keramat's user avatar

KeramatKeramat

1211 silver badge3 bronze badges

1

Here, you need to make sure that the MySQL service is running is Windows. It might be possible that your MySQL service is not running cuurrently.

  1. Open Services window by pressing Windows+R and entering services.msc
  2. Find out MySQL right click and select start.

It works.

7bStan's user avatar

7bStan

1601 gold badge4 silver badges13 bronze badges

answered Apr 11, 2020 at 8:16

Arianne Hernandez's user avatar

1

I had this error — stupid mistake was, I was using -p3307 to specify port, whereas I should have used -P3307, i.e. capital P. Small ‘p’ is for password arg :)

answered Aug 26, 2014 at 13:15

Frederik Struck-Schøning's user avatar

In Windows 7

  1. press Windows+R it opens Run
  2. Enter services.msc
  3. Find out mysql right click and start
  4. if mysql was not found
    1. Run cmd as administrator
    2. goto C:Program Files (x86)MySQLMySQL Server 5.6bin directory(to go back use cd..) and type mysqld.exe --install
  5. follow step 3

That’s all

barbsan's user avatar

barbsan

3,41811 gold badges21 silver badges28 bronze badges

answered Jun 10, 2017 at 18:13

nikhil's user avatar

nikhilnikhil

811 silver badge1 bronze badge

2

I solved this by adding the following arguments to the command line string:

mysql --user username --password password --host localhost --port 3306 databasename < "system path to .sql file"

Without the --host and --port arguments, especially if you change the port to let’s say 3307, which is a non default value, will cause this error.

barbsan's user avatar

barbsan

3,41811 gold badges21 silver badges28 bronze badges

answered Jan 14, 2018 at 9:59

Charles Robertson's user avatar

2

I got this error in command prompt when I tried to open MySQL from cmd «mysql -u root -p»
Can’t connect to MySQL server on ‘localhost:3306’ (10061)
It was because I changed my port during the installation of MySQL community server as I had XAMPP server installed and running as well which was not allowing me to use the port 3306.
So basically I had 2 MySQL servers installed in my system.

  1. MySQL community server.
  2. XAMPP server.

If anyone had this same issue this is how I fixed it.
Step 1: Reconfigure MySQL server to port 3306
Step 2: Reconfigure XAMPP to use a different port other than 3306

Note: Stop the XAMPP server before following the steps.

Step 1: Reconfigure MySQL server to port 3306

  1. Click Start and open MySql installer — community
  2. Click on reconfigure button in front of MySql server
  3. Type 3306 in port. Execute and complete the installation.
    enter image description here

Step 2: Reconfigure XAMPP to use a different port other than 3306

  1. Open XAMPP and change the port other than 3306 in two files
    my.ini under MySQL
    and php.ini under Apache
    enter image description here

Now everything seems to be working fine for me. I was able to get into MySQL community server from cmd and I can use XAMPP server as well.

Dharman's user avatar

Dharman

30.4k22 gold badges84 silver badges133 bronze badges

answered Aug 11, 2021 at 15:16

mrsagar105's user avatar

mrsagar105mrsagar105

1762 silver badges6 bronze badges

I have Windows 8.1 and I too had this problem. My teacher told me it was probably because my MySQL server had stopped running. She told me to go into the Computer Management utility (right click the lower-most left hand corner of the screen on Windows 8.1 to access Computer Management). Then under Services and Applications, open up the Services and find MySQL. You should be able to right-click on MySQL and restart it.

answered Jan 26, 2015 at 7:04

Avilio's user avatar

AvilioAvilio

5716 silver badges4 bronze badges

  1. In Start Menu, search for «mysql». Among the results, you should see the «MySQL Installer — Community». Run it.

  2. MySQL Installer window will show up as shown below. Find «MySQL Server» under Product and click on «Reconfigure» link.

  3. The MySQL Installer will show up (same one you used for the first MySQL Server installation). Go through all the steps.

  4. After the MySQL Installer was finished, I started the MySQL service again. This time, the «Startup Message Log» on The MySQL Notifier was showing that the server started successfully:

MySQL : How to fix Can’t connect to MySQL server on localhost 10061 error

answered Aug 30, 2018 at 15:30

nishith kumar's user avatar

This is the easiest solution and worked for me.

  • Go to where you downloaded
    «mysql-installer-web-community-8.0.19.0.msi», file for installing
    mysql.
  • Run this by double clicking on it. (No need to uninstall anything)
  • Click on «reconfigure» beside the MySql server.
  • Agree everything which comes in middle, provide password for root where asked.
  • Finish. That’s it you’re good to go.

answered May 19, 2020 at 6:11

Rama Krishna Reddy's user avatar

2

For the 5.7 version, I had the same problem and a simple fix did the trick. As Installed the workbench 5.7 there was another «software» of sorts called the «MySQL Installer Community». I ran this and ran the «Reconfigure» for the MySQL server. It took about a minute and the problem was no longer there.

Hope it works!.(Keep in mind i was using the 5.7 version)

answered Feb 27, 2017 at 22:08

user0221441's user avatar

user0221441user0221441

3684 silver badges11 bronze badges

Just turn off the firewall and remove the instance configuration. Add a new instance for the server.![Disable Firewall][1]
Give he port number correctly as 3306 as default

answered Jul 25, 2013 at 17:41

Prabhakar's user avatar

Solution 1:

For 32bit:
Run «mysql.exe» from: C:Program FilesMySQLMySQL Server 5.6bin

For 64bit:
Run «MySQLInstanceConfig.exe» from: C:Program FilesMySQLMySQL Server 5.6bin

Solution 2:

The error (2002) Can’t connect to … normally means that there is no
MySQL server running on the system or that you are using an incorrect
Unix socket file name or TCP/IP port number when trying to connect to
the server. You should also check that the TCP/IP port you are using
has not been blocked by a firewall or port blocking service.

The error (2003) Can’t connect to MySQL server on ‘server’ (10061)
indicates that the network connection has been refused. You should
check that there is a MySQL server running, that it has network
connections enabled, and that the network port you specified is the
one configured on the server.

Source: http://dev.mysql.com/doc/refman/5.6/en/starting-server.html
Visit it for more information.

answered Nov 12, 2014 at 17:35

Muhammad Rehan Qadri's user avatar

1

I had the same error. I resolved in this way

Go to start- MySQL Installer-community and run again the installer as a re-configuration(you will be asked so).

Once asked if you want make MySQL instance to run as a Windows service, check the box.

In case would do not work, try unistalling and installing again, and check the box to run MySQL as Windows service.

answered Jun 8, 2016 at 16:28

Carmine Tambascia's user avatar

3

From what I’ve gathered this means the mysql service (mysqld) isn’t running.

  • First make sure it is installed as a windows service : Run

"C:Program FilesMySQLMySQL Server 5.5binmysqld" --install

from the command line.

  • Next, start it up :

services.msc > MySQL > start

If it fails to restart, then you can follow these steps :

  • open the command line as an administrator :
    cmd.exe > open as administrator
  • run "C:Program FilesMySQLMySQL Server 5.7binmysqld" --verbose

it should fail and put the error log in a directory named data under C:Program FilesMySQLMysSQL Server 5.7 . If it fails to create data for some reason, do it manually under that directory and try again. If you can figure out what’s missing from what’s in that log, then good, you’re done.

If you’ve still got no luck, this is how I did it :

  • goto C:ProgramDataMySQL and copy the file named my.ini to C:Windows

  • try to start the service again from the command line :
    "C:Program FilesMySQLMySQL Server 5.7binmysqld" --verbose

If it doesn’t display any error, than the service startup was successfull. If it’s still not working, than delete that my.ini you just copied from C:Windows and start the service from the command line once again.

it should work now

answered Oct 31, 2016 at 18:37

Paul Mira's user avatar

Paul MiraPaul Mira

711 silver badge3 bronze badges

if it is showing error 2003 (HY000): Can’t connect to MySQL server on localhost (10061) than

  1. Search services.msc in run
  2. goto mysql properties
  3. copy the mysql service name
  4. start cmd as administrator
  5. write: net start mysqlservicename .i.e mysql57 or etc it will show mysql is starting.

Christopher Moore's user avatar

answered Apr 7, 2017 at 8:31

neo.abi1000's user avatar

For me, three steps solved this problem on windows 10:

I downloaded MySQL server community edition zip and extracted it in the D drive. After that I went to bin folder and did cmd on that folder. I followed the below steps and all works:

D:toolsmysql-8.0.17-winx64bin>mysqld -install
Service successfully installed.

D:toolsmysql-8.0.17-winx64bin>mysqld --initialize
D:toolsmysql-8.0.17-winx64bin>net start mysql
The MySQL service is starting...
The MySQL service was started successfully.

Kevin's user avatar

Kevin

16.3k8 gold badges57 silver badges74 bronze badges

answered Aug 20, 2019 at 11:46

vikash chauhan's user avatar

I too had this problem, its easy to solve:

Go to Control panel — System and maintenance — System — Advanced system settings — Environment variables — System variables — path — click edit — add

"c:xamppmysqlbin" — it should look like this :

Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files (x86)InteliCLS Client;C:Program FilesInteliCLS Client;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program FilesIntelIntel(R) Management Engine ComponentsDAL;C:Program FilesIntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDAL;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelOpenCL SDK2.0binx86;C:Program Files (x86)IntelOpenCL SDK2.0binx64;C:Program Files (x86)Windows LiveShared;C:Program Files (x86)QuickTime AlternativeQTSystem;c:xamppmysqlbin

And don’t forget to start MySQL from control panel of Xampp.

Valentin Despa's user avatar

answered Jun 3, 2013 at 8:31

Siddharth Patel's user avatar

Siddharth PatelSiddharth Patel

1931 gold badge2 silver badges15 bronze badges

1

I found the same error re occurring even after I tried all the above solutions given above. I had even tried version 5.7 and few more. Guys don’t waste your time trying to fix it. Rather install version 5.5. It’s working perfectly fine without any unnecessary error.

answered Jul 1, 2018 at 16:48

Shruti's user avatar

Well in my case I just opened services.msc using run and restarted 2 of the services related to mysql and it worked!

answered Sep 21, 2018 at 7:28

Aditya's user avatar

In case of Xampp Installation.

Go to your xampp installation and mysql folder, for my case: C:xamppmysql

Run the file «resetroot.bat» from cmd or explorer.

My installation started working!!!

answered Nov 23, 2018 at 8:52

Sachin's user avatar

The solution that fixed the issue was using the following steps:

In Start Menu, search for «mysql». Among the results, you should see the «MySQL Installer — Community». Run it.
MySQL Installer window will show up as shown below. Find «MySQL Server» under Product and click on «Reconfigure» link.
MySQL Installer Community

The MySQL Installer will show up (same one you used for the first MySQL Server installation). Go through all the steps.

After the MySQL Installer was finished, I started the MySQL service again.

answered Dec 16, 2018 at 16:49

ankit715's user avatar

Don’t do useless stuff like reconfigure, stop MySQL and start MySQL in service.
Just reinstall the MYSQL server and again install it in your system.
Remember only uninstall MySQL server and nothing else.
All the problem will be solve automatically

answered Aug 6, 2019 at 16:32

VINEET KUMAR's user avatar

The main reason for this kind of error is you might have uninstalled Mysql server application. Install it and then give it a go.

answered Aug 26, 2019 at 9:28

Prateek Gowda's user avatar

I had the same issue and basically resolved it by pointing to a specific port number that my MySQL server was running on. Below is the command. Please edit the code to fit your case i.e your port number,your mysql server username,your password.

    mysql -u root -pYourMysqlRootPassword -P3307 

answered Oct 11, 2019 at 11:35

Tom Munyiri's user avatar

Tom MunyiriTom Munyiri

1562 silver badges5 bronze badges

  1. Create the temp folder c:/mysqltmp
  2. In my.ini file under [mysqld] add the line
    tmpdir=c:/mysqltmp
  3. Add full privileges to user NETWORK SERVICE for «C:ProgramDataMySQLMySQL Server X.YDataibdata1″ file
  4. Start service

These are steps for the same problem with MySQL5.7 and MySQL8.0 on Windows 10

answered Oct 11, 2019 at 21:03

nesomis's user avatar

Подключаться к базам данных можно разными способами. Подключение, устанавливаемое с сервера, называется локальным. С помощью такого типа подключения можно работать с домашнего компьютера, при этом используя любые удобные приложения по управлению базами данных.

Я расскажу, как подключиться к удаленной базе данных MySQL, какие существуют способы, а также опишу некоторые типичные ошибки.

Подключение через панель управления TimeWeb

Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.

При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.

phpMyAdmin

phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.

Входим в данный раздел, вбиваем все данные и подключаемся.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Соединение через SSH туннель

Данный тип подключения считается более безопасным, потому что все данные по SSH-туннелю передаются в зашифрованном виде, исключая возможность перехвата.

Подключение в Windows

В данной ОС соединение по SSH протоколу можно осуществить с помощью специальных программ для управления базами данных. Например, PuTTY (бесплатная программа) или SecureCRT (платное ПО, но с пробной версией на 30 дней).

Мы для работы выбрали PuTTY. Скачиваем установщик с официального сайта и устанавливаем приложение. Запускаем программу, затем переходим в раздел «Session». В поле «Host Name» вводим свой домен или указываем его IP-адрес.

Настройка туннеля SSH в приложении PuTTY

Далее переходим в категорию «Connection», открываем вкладку «SSH», затем «Tunnels». В поле «Source Port» указываем значение 3306, в «Destination» вбиваем localhost:3306, потом жмем на кнопку «Add» для добавления порта в список. И только потом жмем кнопку «Open» для установления соединения с хостом.

Создание SSH-туннеля с помощью программы PuTTY

Логин и пароль те же самые, которые используются для входа в панель управления. При подключении используем имя пользователя и пароль, выданные при создании базы данных. Адрес сервера — 127.0.0.1, порт для подключения 3306.

Предупреждаем, что если вы уже устанавливали сервер баз данных MySQL на своем компьютере, то соединение через порт 3306 будет недоступно. Надо будет указать другое значение, например 3307.

Подключение в Linux

В ОС Linux никакого дополнительного ПО устанавливать не придется, можно все провести через командную строку «Терминал». Перед тем как подключиться к MySQL удаленно, нужно создать SSH-туннель. Вводим вот такую команду:

ssh -L3306:localhost:3306 -n логин@site.com

Потом в конфигурационном файле MySQL потребуется изменить параметр, отвечающий за удаленное подключение. Открываем в «Терминале» файл, дав вот такую команду:

sudo nano /etc/mysql/my.cnf

Далее комментируем нужную нам строку. В итоге она должна выглядеть вот таким образом:

# bind-address = 127.0.0.1

Сохраняем изменения, потом перезапускаем MySQL вот такой командой:

sudo service mysql restart

Далее будет запрошен пароль для входа в панель управления хостингом, вводим его. Для подключения к удаленному серверу MySQL необходимо создать пользователя, и делается это вот такой командой:

GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY 'пароль'

Так мы создадим пользователя с неограниченным доступом ко всем базам на указанном сервере. Потом проверяем подключение утилитой telnet. Если сервер запрос не отклонил, значит, пора приступать к подключению. Для этого можно задать команды вот таких типов:

mysql -u имя_пользователя –h 127.0.0.1 –p

mysql -h наименование_хоста -u dbUser -p dbName

VDS Timeweb арендовать

Как проверить соединение с базой данных MySQL

Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:

telnet 127.0.0.1 3306

Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.

Читайте также

Часовой пояс MySQL

MySQL и Java-приложение (docker)

Распространенные проблемы и ошибки при подключении к MySQL

Как подключиться к MySQL удаленно, если возникают какие-то ошибки? Трудности обычно возникают при наличии запрещающих правил. Проверить, существуют ли такие, можно вот таким запросом:

iptables-save

Если таковые обнаружатся, добавим разрешающее правило. Для этого надо ввести соответствующую команду, она должна выглядеть примерно вот так:

/sbin/iptables -A INPUT -i eth0 -p tcp —destination-port 3306 -j ACCEPT

Если при подключении возникает ошибка «Can’t connect to Mysql Server on ‘IP_адрес'(10061)», соединение заблокировал брандмауэр, firewall, outpost, антивирус и прочие программы. Для UFW, инструмента брандмауэра в Ubuntu, можно задать вот такую команду, разрешающую доступ с любого IP-адреса:

sudo ufw allow 3306/tcp

Есть еще возможность открыть доступ для определенного IP-адреса, и это куда более безопасный способ. Для этого потребуется ввести такой запрос:

sudo ufw allow from IP_адрес to any port 3306

Если же появляется ошибка типа «Client does not support autentification protocol request by server; consider upgrading MySQL client», это значит, что установленный клиент не поддерживает требуемый сервером протокол.

Эту ошибку можно исправить, установив пароль старого формата:

SET PASSWORD FOR user@host = OLD_PASSWORD('password')

Если при проверке выходит ошибка формата «ERROR 2003 (HY000): Can’t connect to MySQL server», это значит, что порт 3306 не открыт. Либо сервер MySQL не прослушивает указанный IP-адрес.

В случае, когда выходит сообщение «ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server», указывается отсутствие прав доступа к удаленному серверу у пользователя.

Ошибка «1045 невозможно подключиться к серверу MySQL» возникает при попытке подключиться удаленно к базам данных через phpMyAdmin. Причиной тому может быть неправильно введенный логин или же отсутствие пароля у пользователя или его неправильная смена.

Заключение

MySQL – один из самых популярных серверов баз данных с открытым исходным кодом. Подключиться к нему можно разными способами, причем как локально, так и удаленно. Если в процессе соединения возникают нетипичные ошибки, рекомендуем связаться со службой технической поддержки. 

MySQL – широко используемая система управления реляционными базами данных (RDMS) с открытым исходным кодом, принадлежащая Oracle.

На протяжении многих лет он был выбором по умолчанию для веб-приложений и по-прежнему остается популярным по сравнению с другими механизмами баз данных.

См. также Как установить последний MySQL 8.0 на RHEL / CentOS и Fedora

MySQL был разработан и оптимизирован для веб-приложений – он является неотъемлемой частью основных веб-приложений, таких как Facebook, Twitter, Wikipedia, YouTube и многих других.

Ваш сайт или веб-приложение работают на MySQL?

В этой подробной статье мы расскажем, как устранять проблемы и распространенные ошибки в сервере баз данных MySQL.

Мы опишем, как определить причины проблем и что нужно сделать для их решения.

Содержание

  1. 1. Не удается подключиться к локальному серверу MySQL
  2. 2. Не удается подключиться к серверу MySQL
  3. 3. Доступ запрещен – ошибка в MySQL
  4. 4. Потерянное соединение с MySQL сервером
  5. 5. Слишком много подключений MySQL
  6. 6. Недостаточно памяти MySQL
  7. 7. MySQL продолжает ломаться

1. Не удается подключиться к локальному серверу MySQL

Одной из распространенных ошибок подключения клиента к серверу в 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, как показано далее.

$ ps xa | grep mysqld | grep -v mysqld

Если вышеприведенные команды не показывают выходных данных, то сервер базы данных не работает.

Поэтому клиент не может подключиться к нему.

Чтобы запустить сервер, выполните следующую команду systemctl.

$ sudo systemctl start mysql        #Debian/Ubuntu
$ sudo systemctl start mysqld       #RHEL/CentOS/Fedora

Чтобы проверить состояние службы MySQL, используйте следующую команду.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

В результате выполнения вышеприведенной команды произошла ошибка службы MySQL.

В таком случае вы можете попробовать перезапустить его и еще раз проверить его состояние.

$ sudo systemctl restart mysql
$ sudo systemctl status mysql

Кроме того, если сервер работает, как показано в следующей команде, но вы по-прежнему видите вышеуказанную ошибку, вам также следует убедиться, что порт TCP / IP не заблокирован брандмауэром или любой службой блокировки портов.

$ ps xa | grep mysqld | grep -v mysqld

4 способа узнать, какие порты прослушиваются в Linux

$ sudo netstat -tlpn | grep "mysql"

2. Не удается подключиться к серверу MySQL

Другая часто встречающаяся ошибка подключения -“(2003) Can’t connect to MySQL server on ‘server’ (10061)”,  что означает, что в сетевом соединении было отказано.

Здесь начнем с проверки того, что в системе работает сервер MySQL, как показано выше.

Также убедитесь, что на сервере включены сетевые подключения и что сетевой порт, который вы используете для подключения, настроен на сервере.

Другие распространенные ошибки, с которыми вы можете столкнуться при попытке подключиться к серверу MySQL:

ERROR 2003: Can't connect to MySQL server on 'host_name' (111)
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)

Эти ошибки указывают на то, что сервер может работать, однако вы пытаетесь подключиться с использованием порта TCP / IP, именованного канала или файла сокета Unix, отличного от того, который прослушивает сервер.

3. Доступ запрещен – ошибка в MySQL

В MySQL учетная запись пользователя определяется на основе имени пользователя и клиентского хоста или хостов, с которых пользователь может подключиться к серверу.

Кроме того, учетная запись может также иметь учетные данные для аутентификации, такие как пароль.

Хотя существует много разных причин ошибок «Доступ запрещен», одна из распространенных причин связана с учетными записями MySQL, которые сервер разрешает использовать клиентским программам при подключении.

Это означает, что имя пользователя, указанное в соединении, не имеет прав доступа к базе данных.

MySQL позволяет создавать учетные записи, которые позволяют пользователям клиентов подключаться к серверу и получать доступ к данным, управляемым сервером.

В связи с этим, если вы столкнулись с ошибкой в доступе, проверьте, разрешено ли учетной записи пользователя подключаться к серверу через клиентскую программу, которую вы используете, и, возможно, хост, с которого происходит соединение.

Вы можете увидеть, какие привилегии имеет данная учетная запись, выполнив команду SHOW GRANTS, как показано ниже.

> SHOW GRANTS FOR 'itsecforu'@'localhost';

Вы можете предоставить привилегии конкретному пользователю в конкретной базе данных для удаленного IP-адреса, используя следующие команды в оболочке MySQL.

> grant all privileges on *.test_db to 'tecmint'@'192.168.0.100';
> flush privileges;

Кроме того, ошибки запрещенного доступа могут также возникнуть из-за проблем с подключением к MySQL, обратитесь к ранее объясненным ошибкам.

4. Потерянное соединение с MySQL сервером

Вы можете столкнуться с этой ошибкой Lost Connection to MySQL Server по одной из следующих причин: плохое сетевое соединение, время ожидания соединения или проблема со значениями BLOB, которые больше, чем max_allowed_packet.

В случае проблем с сетевым подключением убедитесь, что у вас хорошее сетевое подключение, особенно если вы обращаетесь к удаленному серверу баз данных.

Если это проблема тайм-аута соединения, особенно когда MySQL пытается использовать первоначальное соединение с сервером, увеличьте значение параметра connect_timeout.

Но в случае значений BLOB, которые больше, чем max_allowed_packet, вам нужно установить более высокое значение для max_allowed_packet в вашем файле конфигурации /etc/my.cnf в разделе [mysqld] или [client], как показано далее.

[mysqld]
connect_timeout=100
max_allowed_packet=500M

Если файл конфигурации MySQL недоступен, вы можете установить это значение с помощью следующей команды в оболочке MySQL.

> SET GLOBAL connect_timeout=100;
> SET GLOBAL max_allowed_packet=524288000;

5. Слишком много подключений MySQL

Если клиент MySQL обнаруживает ошибку «too many connections», это означает, что все доступные соединения используются другими клиентами.

Количество соединений (по умолчанию 151) контролируется системной переменной max_connections;

Вы можете устранить проблему, увеличив ее значение, чтобы разрешить больше подключений в файле конфигурации /etc/my.cnf.

[mysqld]
max_connections=1000

6. Недостаточно памяти MySQL

Если вы выполняете запрос с помощью клиентской программы MySQL и сталкиваетесь с рассматриваемой ошибкой -> Out of Memory MySQL, это означает, что в MySQL недостаточно памяти для хранения всего результата запроса.

Первый шаг – убедиться, что запрос правильный, если это так, то выполните следующие действия:

  • если вы используете клиент MySQL напрямую, запустите его с ключом –quick, чтобы отключить кэшированные результаты или
  • Если вы используете драйвер MyODBC, пользовательский интерфейс конфигурации (UI) имеет расширенную вкладку для флагов. Отметьте «Do not cache result».

Еще один замечательный инструмент – MySQL Tuner – полезный скрипт, который подключается к работающему серверу MySQL и дает рекомендации по его настройке для более высокой производительности.

$ sudo apt-get install mysqltuner     #Debian/Ubuntu
$ sudo yum install mysqltuner         #RHEL/CentOS/Fedora
$ mysqltuner

7. MySQL продолжает ломаться

Если вы столкнулись с этой проблемой, вы должны попытаться выяснить, заключается ли проблема в том, что сервер MySQL умирает или это клиентская проблема.

Обратите внимание, что многие сбои сервера вызваны поврежденными файлами данных или индексными файлами.

Вы можете проверить состояние сервера, чтобы определить, как долго он работал.

$ sudo systemctl status mysql       #Debian/Ubuntu
$ sudo systemctl status mysqld      #RHEL/CentOS/Fedora

Либо запустите следующую команду mysqladmin, чтобы узнать время безотказной работы сервера MySQL.

$ sudo mysqladmin version -p 

Другие решения включают в себя, помимо прочего, остановку сервера MySQL и включение отладки, а затем снова запуск службы.

Вы можете попытаться создать контрольный пример, который можно использовать для повторения проблемы.

Кроме того, откройте дополнительное окно терминала и выполните следующую команду, чтобы отобразить статистику процесса MySQL во время выполнения других ваших запросов:

$ sudo mysqladmin -i 5 status
или
$ sudo mysqladmin -i 5 -r status

Понравилась статья? Поделить с друзьями:
  • Ошибка при подключении к ksc
  • Ошибка при подключении к icq
  • Ошибка при подключении к google market
  • Ошибка при подключении к adodb connection
  • Ошибка при подключении к adobe