Ошибка 111 mysql

I installed mysql server on linux box IP = 192.168.1.100 but when i try to connect to this IP it alway error(111). but use localhost and 127.0.0.1 is OK.

beer@beer-laptop# ifconfig | grep "inet addr"
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0

beer@beer-laptop# mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111)

beer@beer-laptop# mysql -ubeer -pbeer -hlocalhost
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 160
Server version: 5.1.31-1ubuntu2 (Ubuntu)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> 

beer@beer-laptop# mysql -ubeer -pbeer -h127.0.0.1
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 161
Server version: 5.1.31-1ubuntu2 (Ubuntu)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> 

Connect from another machine it also error 111.

another@another-laptop# mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111)

How difference between use localhost/127.0.0.1 and 192.168.1.100 in this case.
I don’t know how to connect to this database from another machine.

Help please.
Thank.

OMG Ponies's user avatar

OMG Ponies

324k80 gold badges520 silver badges499 bronze badges

asked Sep 14, 2009 at 10:47

wearetherock's user avatar

wearetherockwearetherock

3,7218 gold badges36 silver badges47 bronze badges

1

It probably means that your MySQL server is only listening the localhost interface.

If you have lines like this :

bind-address = 127.0.0.1

In your my.cnf configuration file, you should comment them (add a # at the beginning of the lines), and restart MySQL.

sudo service mysql restart

Of course, to do this, you must be the administrator of the server.

Rafaf Tahsin's user avatar

Rafaf Tahsin

7,4174 gold badges28 silver badges44 bronze badges

answered Sep 14, 2009 at 10:53

Pascal MARTIN's user avatar

Pascal MARTINPascal MARTIN

394k80 gold badges653 silver badges660 bronze badges

7

111 means connection refused, which in turn means that your mysqld only listens to the localhost interface.

To alter it you may want to look at the bind-address value in the mysqld section of your my.cnf file.

answered Sep 14, 2009 at 10:50

Michael Krelin - hacker's user avatar

6

If all the previous answers didn’t give any solution,
you should check your user privileges.

If you could login as root to mysql
then you should add this:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Then try to connect again using mysql -ubeer -pbeer -h192.168.1.100. It should work.

Gilles 'SO- stop being evil''s user avatar

answered Sep 12, 2011 at 21:55

xnome's user avatar

3

If you’re running cPanel/WHM, make sure that IP is whitelisted in the firewall. You will als need to add that IP to the remote SQL IP list in the cPanel account you’re trying to connect to.

0b10011's user avatar

0b10011

18.3k4 gold badges64 silver badges85 bronze badges

answered Apr 30, 2012 at 18:34

Dragos.'s user avatar

Dragos.Dragos.

891 silver badge1 bronze badge

2

Wondering how to resolve ‘Can’t connect to mysql error 111’? We can help you.

When we try to access mysql server on Linux machine using the public IP address, it is showing error 111.

Here at Bobcares, we get requests from our customers to fix similar issues as a part of our Server Management Services.

Today, let’s see how our Support Engineers fix this issue for our customers.

Cause for ‘Can’t connect to mysql error 111’ error

Usually, this error occurs when mysqld only listens to the localhost interface.

When we try to access mysql server on Linux machine using the public IP address, it often shows error 111. However, when localhost and 127.0.0.1 is used, it is connecting fine.

# ifconfig | grep “inet addr”
inet addr:127.0.0.1 Mask:255.0.0.0
inet addr:195.168.1.100 Bcast:195.168.1.255 Mask:255.255.255.0
# mysql -ubob -pbob -hlocalhost
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 160
Server version: 5.1.31-1ubuntu2 (Ubuntu)

# mysql -ubob -pbob -h127.0.0.1
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 161
Server version: 5.1.31-1ubuntu2 (Ubuntu)

The error message appears as below:

# mysql -ubob -pbob -h195.168.1.100
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘195.168.1.100’ (111)

Solution for ‘Can’t connect to mysql error 111’ error

Let us see how our Support Techs resolved the error.

Before we proceed with the steps to fix the issue, check the MySQL status. You can check MySQL status following below provided steps:

1.Initially, check if the MySQL is running without any issue.

sudo ps wwaux | grep -i sql

2. If that does not output anything, try starting the MySQL service:

sudo service mysql start

3. Also, check hostname/port is MySQL listening on

sudo netstat -plutn | grep -i sql

If the MySQL is running without any issue, please go ahead with the below mentioned steps:

1. Firstly, in my.cnf configuration file, we should comment the following line in the mysqld section.

bind-address = 127.0.0.1

We can comment by adding # at the beginning of a line.

Once this is done, restart mysql.

$ sudo service mysql restart

To do this, we must have root or sudo access to the server.

2. Then, we should check the user privileges.

Login as root to mysql and add this:

CREATE USER ‘root’@’195.168.1.100’ IDENTIFIED BY ‘***’;
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’195.168.1.100’ IDENTIFIED BY ‘***’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

Finally, you can try to connect again using mysql -ubob -pbob -h195.168.1.100. to check its working.

[Need assistance? We can help you]

Conclusion

In short, we saw how our Support Engineers fix this mysql error on Linux machine for our customers.

Are you using Docker based apps?

There are proven ways to get even more out of your Docker containers! Let us help you.

Spend your time in growing business and we will take care of Docker Infrastructure for you.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

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»

I’ve developed a website on the Silverstripe framework and deployed this to a digital ocean server using centos (7.0.1406) , mariadb (10.0.14) and apache (2.4.6). I’m somewhat of a novice when it comes to system admin so set up the server following instructions in the digital ocean community docs (https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-centos-7).

I’m randomly getting the following error when I try to connect to the site:

[Warning] mysqli::mysqli(): (HY000/2002): Can’t connect to local MySQL
server through socket ‘/var/lib/mysql/mysql.sock’ (111)

On

$this->dbConn = new MySQLi($parameters['server'], $parameters['username'], $parameters['password']);

When this occurs, I reboot the server (with ‘reboot’) the issue goes away. It only seems to occur with activity is happening in the CMS. My client has experienced it a number of times when trying to upload images and I have just seen it for the first time when switching pages in the CMS.

No amount of use on the front end of the website causes issues (so far at least). What could be causing this issue? Are there any actions which can be performed by a website (PHP) that could trigger this failure? Overuse of system resources/hang ups somewhere/timeouts? Where can I start my debugging process?

I’ve deployed numerous sites under similar environments in the past but have never encountered this except for forcing a shut down via the digital ocean control panel.

Falcon Momot's user avatar

Falcon Momot

25.2k15 gold badges63 silver badges92 bronze badges

asked Nov 26, 2014 at 15:33

Fraser's user avatar

111 means Connection refused. That is, nothing is listening to that socket.

This means that MariaDB is not running, or was configured to listen to some other socket (or none at all).

Check your MariaDB configuration to ensure you specified the socket correctly, then restart it.

answered Nov 26, 2014 at 17:23

Michael Hampton's user avatar

Michael HamptonMichael Hampton

242k43 gold badges500 silver badges964 bronze badges

2

I had the same problem and found out a few things after digging around. MariaDB is a drop-in replacement for mysql. On the new system, mysql is the MariaDB client (although I’m not clear on what that means). Checking to see if the service was running:

service mysqld status

which indicated:

Redirecting to /bin/systemctl status mysqld.service

mysqld.service

Loaded: not-found (Reason: No such file or directory)

Active: inactive (dead)

In other words, the mysqld service is not running.

Starting the service worked for me:

systemctl start mariadb.service

Now all the mysql commands work as expected.

To tie the last knot, enable the service at boot:

systemctl enable mariadb.service

Community's user avatar

answered Apr 23, 2015 at 5:36

John L's user avatar

0

Hi @AveryPayne . Thanks for taking the time to read the post. $paramaters[‘server’] is ‘localhost’. Cheers – Fraser

The short version is, You Can’t Get There From Here.

Based on this comment, and the error message, I’d say you have a problem with the type of connection. The socket in the error message is stated as /var/lib/mysql/mysql.sock but you are attempting a network connect via localhost, which maps to the network address 127.0.0.1. Your program looks like it isn’t using the correct parameter at runtime. Double-check that the parameter really is ‘localhost’ at runtime by having it log/write out the parameter somewhere, and double-check that MySQL is attached to network port 3306, instead of a file socket at /var/lib/mysql/mysql.sock.

Alternatively, change the parameter for the program and MySQL to use the file socket instead. Whatever works easiest.

answered Nov 28, 2014 at 20:45

Avery Payne's user avatar

Avery PayneAvery Payne

14.5k1 gold badge51 silver badges88 bronze badges

The first step would be to look into the logfile of Mariadb, which is typically located in /var/lib/mysql and named *.err.

You could also verify that Mariadb is still running on the server when you get this error message and you could verify if you are still able to log in (in case it is running).

answered Nov 26, 2014 at 15:52

Thomas Stinner's user avatar

2

Hi check whether your disk is full in the installation partition. And if the storage exists manage the logs in the Mariadb server adding following lines to my.conf

expire_logs_days = 10 #this is for managing the log days
max_binlog_size = 100M #this is for managing the log size

Move the logs to a directory and restart the mariadb server.

answered Jun 14, 2019 at 14:09

AmilaMGunawardana's user avatar

  • Печать

Страницы: [1]   Вниз

Тема: Ошибка «MYSQL error 111»  (Прочитано 1884 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
madwayz1337

При входе на сайт, выдаёт такое дело: «MySQL Connection Error: Can’t connect to MySQL server on ‘тут_ip’ (111)». Что делать и как это фиксить? Сразу скажу, я новичок, поэтому расскажите для меня подробнее :в Заранее спасибо.


Оффлайн
bezbo


Оффлайн
madwayz1337

Ну… Чё-т нифига. Я сделал всё, как там написано и ничего не поменялось. bind_address сменил на IP сервера и тоже пусто. На netstat -an | grep 3306 полный игнор. Не знаю чё ещё сделать…


Оффлайн
AnrDaemon

MySQL на том же сервере, что и PHP?
bind_address = localhost
и при подключении использовать localhost же.

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…


Оффлайн
madwayz1337

Да, всё на одном сервере. То есть надо localhost написать, да?


Оффлайн
AnrDaemon

А что, я как-то неясно написал, или что?…
Это вообще-то конфигурация по умолчанию, специально для тех, кто «новичок и не разбирается.»

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…


Оффлайн
madwayz1337

Ну у меня сначала 127.0.1 стоял. Этот IP не равен localhost? Сейчас localhost поставил и mysql не запускается(Вроде и до этого не запускалась)


Оффлайн
AnrDaemon

Вроде

В огороде…
Надо не гадать, надо знать.
Открывайте логи и смотрите, запускается или нет, если нет — то почему, какая ошибка?…

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…


Оффлайн
madwayz1337


Оффлайн
AnrDaemon

Смотрите ВСЕ логи. А не только один, да ещё кусками.

Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…


  • Печать

Страницы: [1]   Вверх

Понравилась статья? Поделить с друзьями:
  • Ошибка 1109 ssangyong kyron
  • Ошибка 1109 mysql
  • Ошибка 1108 пежо 308
  • Ошибка 1108 ниссан
  • Ошибка 1108 нива шевроле