Db error 2002 no such file or directory observium

Type: Bug

  • Type:


    Bug

  • Resolution:

    Not A Bug


  • Priority:


    Critical

  • Fix Version/s:



    None


  • Affects Version/s:



    Professional Edition


  • Environment:

    Hide

    Linux Debian, 4 GB RAM,

    below is my storage.

    Filesystem 1K-blocks Used Available Use% Mounted on

    udev 1959744 0 1959744 0% /dev

    tmpfs 394336 42152 352184 11% /run

    /dev/mapper/turnkey-root 51435992 9141912 39651548 19% /

    tmpfs 1971668 0 1971668 0% /dev/shm

    tmpfs 5120 0 5120 0% /run/lock

    tmpfs 1971668 0 1971668 0% /sys/fs/cgroup

    tmpfs 394332 0 394332 0% /run/user/0

    Show

    Linux Debian, 4 GB RAM,

    below is my storage.

    Filesystem 1K-blocks Used Available Use% Mounted on

    udev 1959744 0 1959744 0% /dev

    tmpfs 394336 42152 352184 11% /run

    /dev/mapper/turnkey-root 51435992 9141912 39651548 19% /

    tmpfs 1971668 0 1971668 0% /dev/shm

    tmpfs 5120 0 5120 0% /run/lock

    tmpfs 1971668 0 1971668 0% /sys/fs/cgroup

    tmpfs 394332 0 394332 0% /run/user/0

Hi friends, 

I am having an issue with my Observium running on Linux Debian. 

When I go to the observium login  page I get an error as shown below. 

DB Error 2002: No such file or directory

This is for Mac OS X with the native installation of Apache HTTP and custom installation of MySQL.

The answer is based on @alec-gorge’s excellent response, but since I had to google some specific changes to have it configured in my configuration, mostly Mac OS X-specific, I thought I’d add it here for the sake of completeness.

Enable PHP5 support for Apache HTTP

Make sure the PHP5 support is enabled in /etc/apache2/httpd.conf.

Edit the file with sudo vi /etc/apache2/httpd.conf (enter the password when asked) and uncomment (remove ; from the beginning of) the line to load the php5_module module.

LoadModule php5_module libexec/apache2/libphp5.so

Start Apache HTTP with sudo apachectl start (or restart if it’s already started and needs to be restarted to re-read the configuration file).

Make sure that /var/log/apache2/error_log contains a line that tells you the php5_module is enabled — you should see PHP/5.3.15 (or similar).

[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations

Looking up Socket file’s name

When MySQL is up and running (with ./bin/mysqld_safe) there should be debug lines printed out to the console that tell you where you can find the log files. Note the hostname in the file name — localhost in my case — that may be different for your configuration.

The file that comes after Logging to is important. That’s where MySQL logs its work.

130309 12:17:59 mysqld_safe Logging to '/Users/jacek/apps/mysql/data/localhost.err'.
130309 12:17:59 mysqld_safe Starting mysqld daemon with databases from /Users/jacek/apps/mysql/data

Open the localhost.err file (again, yours might be named differently), i.e. tail -1 /Users/jacek/apps/mysql/data/localhost.err to find out the socket file’s name — it should be the last line.

$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)

Note the socket: part — that’s the socket file you should use in php.ini.

There’s another way (some say an easier way) to determine the location of the socket’s file name by logging in to MySQL and running:

show variables like '%socket%';

Configuring PHP5 with MySQL support — /etc/php.ini

Speaking of php.ini…

In /etc directory there’s /etc/php.ini.default file. Copy it to /etc/php.ini.

sudo cp /etc/php.ini.default /etc/php.ini

Open /etc/php.ini and look for mysql.default_socket.

sudo vi /etc/php.ini

The default of mysql.default_socket is /var/mysql/mysql.sock. You should change it to the value you have noted earlier — it was /tmp/mysql.sock in my case.

Replace the /etc/php.ini file to reflect the socket file’s name:

mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

Final verification

Restart Apache HTTP.

sudo apachectl restart 

Check the logs if there are no error related to PHP5. No errors means you’re done and PHP5 with MySQL should work fine. Congrats!

I can not get this to work. I’ve deleted it a dozen times, left it overnight before trying to login, and I get different error messages all the time even with new install dir’s. 

Most recent one: DB Error 2002: No such file or directory

Or the «observium» username and password don’t work. 

Log keeps spamming 

Starting MariaDB...
200828 07:31:48 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:31:48 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:31:49 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:31:49 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:31:51 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:31:51 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:31:52 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:31:52 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
___ _ _
/ _  | |__ ___ ___ _ __ __ __(_) _ _ _ __ ___
| | | || '_  / __| / _ | '__|  / /| || | | || '_ ` _ 
| |_| || |_) |__ | __/| |  V / | || |_| || | | | | |
___/ |_.__/ |___/ ___||_| _/ |_| __,_||_| |_| |_|[0;36m
Observium Community Edition 19.8.10000
http://www.observium.org[0m
[0m

CMD[[0;33m/opt/observium/scripts/distro[0m]
[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;32m0.0153s[0m][0m
STDOUT[
Linux|4.19.107-Unraid|amd64|Ubuntu|18.04|vmware|docker
][0m

CMD[[0;33m/usr/bin/env python --version 2>&1[0m]

[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;32m0.0016s[0m][0m
STDOUT[
Python 2.7.17
][0m

SQL[[0;33mSELECT version();[0m][0m

SQL RUNTIME[[0;32m0.00018501s[0m][0m

CMD[[0;33m/usr/bin/snmpget --version 2>&1[0m]

[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;32m0.0018s[0m][0m
STDOUT[
NET-SNMP version: 5.7.3

][0m

CMD[[0;33m/usr/bin/rrdtool --version | head -n1[0m]

[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;32m0.0068s[0m][0m
STDOUT[
RRDtool 1.7.0 Copyright by Tobias Oetiker <tobi@oetiker.ch>
][0m

CMD[[0;33m/usr/bin/fping -v 2>&1[0m]
[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;32m0.0015s[0m][0m
STDOUT[
/usr/bin/fping: Version 4.0

/usr/bin/fping: comments to [email protected]
][0m

CMD[[0;33m/usr/sbin/apache2 -v | awk '/Server version:/ {print $3}'[0m]

[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;32m0.0414s[0m][0m
STDOUT[
Apache/2.4.29
][0m

CMD[[0;33mdate "+%:z"[0m]
[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;32m0.0009s[0m][0m
CMD EXITDELAY[[0;31m10ms[0m][0m
STDOUT[
-07:00
][0m

SQL[[0;33mSELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);[0m][0m
SQL RUNTIME[[0;32m0.00020695s[0m][0m

SQL[[0;33mSELECT @@SESSION.sql_mode;[0m][0m
SQL RUNTIME[[0;32m0.00009990s[0m][0m

SQL[[0;33mSHOW VARIABLES LIKE 'character_set_connection'[0m][0m
SQL RUNTIME[[0;32m0.00091219s[0m][0m

[0;36m##### [1;37mSoftware versions[0;36m #####[0m
[0m
[0;36m o [1;37mOS [0m Linux 4.19.107-Unraid [amd64] (Ubuntu 18.04)
[0;36m o [1;37mApache [0m 2.4.29
[0;36m o [1;37mPHP [0m 7.2.24-0ubuntu0.18.04.6 (OPcache: DISABLED)
[0;36m o [1;37mPython [0m 2.7.17
[0;36m o [1;37mMySQL [0m 10.5.4-MariaDB-1:10.5.4+maria~bionic (extension: mysqli 5.0.12-dev)
[0;36m o [1;37mSNMP [0m NET-SNMP 5.7.3
[0;36m o [1;37mRRDtool [0m 1.7.0
[0;36m o [1;37mFping [0m 4.0 (IPv4 and IPv6)

[0;35m##### [1;37mMemory Limit[0;35m #####[0m
[0m
[0;35m o [1;37mPHP [0m Unlimited

[0;35m##### [1;37mMySQL mode[0;35m #####[0m
[0m
[0;35m o [1;37mMySQL [0m ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[0;35m##### [1;37mCharset info[0;35m #####[0m
[0m
[0;35m o [1;37mPHP [0m UTF-8
[0;35m o [1;37mMySQL [0m utf8

[0;35m##### [1;37mTimezones info[0;35m #####[0m
[0m
[0;35m o [1;37mDate [0m Friday, 28-Aug-20 07:36:54 PDT
[0;35m o [1;37mPHP [0m -07:00
[0;35m o [1;37mMySQL [0m -07:00


SQL[[0;33mSELECT `attrib_value` FROM `observium_attribs` WHERE `attrib_type` = 'dbSchema';[0m][0m
SQL RUNTIME[[0;32m0.00015116s[0m][0m

SQL[[0;33mSELECT `version` FROM `dbSchema` ORDER BY `version` DESC LIMIT 1[0m][0m

SQL RUNTIME[[0;32m0.00010705s[0m][0m

SQL[[0;33mSELECT 1 FROM `devices` LIMIT 1;[0m][0m
SQL RUNTIME[[0;32m0.00011396s[0m]
SQL ERROR[[0;31mError in query: (Table 'observium.devices' doesn't exist) 1146[0m][0m

Install initial database schema ...
CMD[[0;33m/usr/bin/mysql -u'observium' -p'bjccHfoupBCWBTWPODmOFa16nN8DYF7X' -h'localhost' -D 'observium' < '/opt/observium/update/db_schema_mysql.sql'[0m]
[0m
CMD EXITCODE[[0;32m0[0m]
CMD RUNTIME[[0;31m115.721s[0m][0m
STDOUT[

][0m

SQL[[0;33mSELECT `attrib_value` FROM `observium_attribs` WHERE `attrib_type` = 'dbSchema';[0m][0m
SQL RUNTIME[[0;32m0.00043917s[0m][0m
done.

SQL[[0;33mSELECT * FROM `observium_processes` WHERE `process_name` = 'discovery.php' AND `device_id` = '-1'[0m][0m
SQL RUNTIME[[0;32m0.00041986s[0m][0m

SQL[[0;33mINSERT INTO `observium_processes` (`process_pid`,`process_name`,`process_ppid`,`process_uid`,`process_command`,`process_start`,`device_id`) VALUES ('225','discovery.php','36','0','php ./discovery.php -d -u','1598625529','-1')[0m][0m
SQL RUNTIME[[0;32m0.02732396s[0m][0m
-- Database is up to date.

SQL[[0;33mDELETE FROM `observium_processes` WHERE `process_pid` = '225' AND `process_name` = 'discovery.php' AND `device_id` = '-1'[0m][0m
SQL RUNTIME[[0;32m0.02290606s[0m][0m

SQL[[0;33mSELECT `attrib_value` FROM `observium_attribs` WHERE `attrib_type` = 'last_versioncheck';[0m][0m
SQL RUNTIME[[0;32m0.00021791s[0m][0m

REQUEST[[0;33mhttp://www.observium.org/versions.php[0m]
REQUEST STATUS[[0;32mTRUE[0m]
REQUEST RUNTIME[[0;32m1.3866s[0m]
RESPONSE CODE[200 OK][0m

SQL[[0;33mSELECT EXISTS (SELECT 1 FROM `observium_attribs` WHERE `attrib_type` = 'latest_ver')[0m][0m
SQL RUNTIME[[0;32m0.00026703s[0m][0m

SQL[[0;33mINSERT INTO `observium_attribs` (`attrib_type`,`attrib_value`) VALUES ('latest_ver','19.8')[0m][0m
SQL RUNTIME[[0;32m0.01941109s[0m][0m

SQL[[0;33mSELECT EXISTS (SELECT 1 FROM `observium_attribs` WHERE `attrib_type` = 'latest_rev')[0m][0m
SQL RUNTIME[[0;32m0.00016999s[0m][0m

SQL[[0;33mINSERT INTO `observium_attribs` (`attrib_type`,`attrib_value`) VALUES ('latest_rev','10000')[0m][0m
SQL RUNTIME[[0;32m0.01637483s[0m][0m

SQL[[0;33mSELECT EXISTS (SELECT 1 FROM `observium_attribs` WHERE `attrib_type` = 'latest_rev_date')[0m][0m
SQL RUNTIME[[0;32m0.00024509s[0m][0m

SQL[[0;33mINSERT INTO `observium_attribs` (`attrib_type`,`attrib_value`) VALUES ('latest_rev_date','2019-08-24')[0m][0m
SQL RUNTIME[[0;32m0.04439902s[0m][0m

SQL[[0;33mSELECT EXISTS (SELECT 1 FROM `observium_attribs` WHERE `attrib_type` = 'last_versioncheck')[0m][0m
SQL RUNTIME[[0;32m0.00021100s[0m][0m

SQL[[0;33mINSERT INTO `observium_attribs` (`attrib_type`,`attrib_value`) VALUES ('last_versioncheck','1598625531')[0m][0m
SQL RUNTIME[[0;32m0.04074883s[0m][0m

SQL[[0;33mSELECT `attrib_value` FROM `observium_attribs` WHERE `attrib_type` = 'latest_rev';[0m][0m
SQL RUNTIME[[0;32m0.00024605s[0m][0m
Adding the 'observium' user to the app.
[0;32mObservium CE 19.8.10000
[1;37mAdd User[0m
[0m
User observium added successfully.
Shutting down.
Aug 28 07:38:51 9ac22bf8d797 mysqld: 2020-08-28 7:38:51 0 [Note] /usr/sbin/mariadbd (initiated by: root[root] @ localhost []): Normal shutdown
Aug 28 07:38:51 9ac22bf8d797 mysqld: 2020-08-28 7:38:51 0 [Note] Event Scheduler: Purging the queue. 0 events
Aug 28 07:38:51 9ac22bf8d797 mysqld: 2020-08-28 7:38:51 0 [Note] InnoDB: FTS optimize thread exiting.
Aug 28 07:38:51 9ac22bf8d797 mysqld: 2020-08-28 7:38:51 0 [Note] InnoDB: Starting shutdown...
Aug 28 07:38:51 9ac22bf8d797 mysqld: 2020-08-28 7:38:51 0 [Note] InnoDB: Dumping buffer pool(s) to /config/databases/ib_buffer_pool
Aug 28 07:38:51 9ac22bf8d797 mysqld: 2020-08-28 7:38:51 0 [Note] InnoDB: Restricted to 2013 pages due to innodb_buf_pool_dump_pct=25
Aug 28 07:38:51 9ac22bf8d797 mysqld: 2020-08-28 7:38:51 0 [Note] InnoDB: Buffer pool(s) dump completed at 200828 7:38:51
Aug 28 07:38:53 9ac22bf8d797 mysqld: 2020-08-28 7:38:53 0 [Note] InnoDB: Shutdown completed; log sequence number 5767295; transaction id 5202
Aug 28 07:38:53 9ac22bf8d797 mysqld: 2020-08-28 7:38:53 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
Aug 28 07:38:53 9ac22bf8d797 mysqld: 2020-08-28 7:38:53 0 [Note] /usr/sbin/mariadbd: Shutdown complete
Aug 28 07:38:53 9ac22bf8d797 mysqld:
Aug 28 07:38:53 9ac22bf8d797 mysqld_safe: mysqld from pid file /run/mysqld/mysqld.pid ended
Aug 28 07:38:53 9ac22bf8d797 mysqld: 2020-08-28 7:38:53 0 [Note] InnoDB: Shutdown completed; log sequence number 5767295; transaction id 5202
Aug 28 07:38:53 9ac22bf8d797 mysqld: 2020-08-28 7:38:53 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
Aug 28 07:38:53 9ac22bf8d797 mysqld: 2020-08-28 7:38:53 0 [Note] /usr/sbin/mariadbd: Shutdown complete
Aug 28 07:38:53 9ac22bf8d797 mysqld:
Aug 28 07:38:53 9ac22bf8d797 mysqld_safe: mysqld from pid file /run/mysqld/mysqld.pid ended
chown time
Initialization complete.
Starting MariaDB...
200828 07:38:57 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:38:57 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:38:58 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:38:58 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:38:59 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:38:59 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:38:59 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:38:59 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:00 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:00 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:01 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:01 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Aug 28 07:39:02 9ac22bf8d797 CRON[906]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Aug 28 07:39:02 9ac22bf8d797 CRON[906]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Database exists.
Starting MariaDB...
200828 07:39:03 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:03 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:04 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:04 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:04 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:04 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:05 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:05 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:06 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:06 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:06 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:06 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...
200828 07:39:08 mysqld_safe Logging to '/config/databases/9ac22bf8d797.err'.
200828 07:39:08 mysqld_safe Starting mariadbd daemon with databases from /config/databases
Database exists.
Starting MariaDB...


Any ideas?

Ошибка «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/run/mysqld/mysqld.sock’ (2 «No such file or directory»)» (РЕШЕНО)

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

Вариант на другом дистрибутиве (отличается путь до файла mysqld.sock):

Ошибка означает, что не получается подключиться к MySQL серверу через сокет /run/mysqld/mysqld.sock, поскольку данный файл просто не существует.

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

Причём она одинакова и для MySQL и для MariaDB.

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

Убедитесь, что MySQL/MariaDB сервер установлен

В первую очередь убедитесь, что СУБД MySQL или MariaDB вообще установлены.

Пакет может называться mysql-server или mysql. Если вы выбрали MariaDB вместо MySQL, то пакет называется mariadb-server или mariadb.

Пакеты mysql-client или mariadb-clients или какие-то ещё НЕ подходят! Это только клиенты для подключения, но не сам сервер.

На Ubuntu, Linux Mint и других дистрибутивах из этой семьи для установки выполните:

Убедитесь, что служба MySQL/MariaDB запущена

Файл /run/mysqld/mysqld.sock создаётся когда MySQL или MariaDB сервер установлен и запущен. Поэтому проверим статус сервера следующей командой (подходит и для MySQL, и для MariaDB):

Должен быть статус active (running) .

Если служба не запущена, то запустите её командой:

После этого проверьте статус службы

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

Убедитесь, что служба MySQL/MariaDB настроена правильно

Если причина проблемы оказалась в том, что служба не запущена и после попытки запуска служба вновь оказалась неактивной, значит проблема может быть в неправильной настройке сервера MySQL/MariaDB.

Файлы конфигурации (настроек) MySQL и MariaDB могут размещаться в разных директориях, например:

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

На что стоит обратить внимание в конфигурационных файлах

Если вы хотите сохранить оба конфигурационных файла, то проверьте, чтобы значение socket было одинаковым. Также для bind-address должен быть установлен правильный IP адрес. Если к этому серверу подключаются только приложения, которые запущены на этом же сервере, то в качестве значения bind-address нужно прописать localhost или 127.0.0.1

Перезапустите службу mysqld

Попробуйте просто перезапустить службу командой:

Либо следующим образом, значала узнайте PID (идентификатор) процесса mysql:

Затем выполните следующую команду, в которой вместо [PID]​ укажите число, полученное из предыдущей команды:

Затем вновь запустите службу:

Неправильные права на файл /run/mysqld/mysqld.sock

У MySQL/MariaDB должно быть достаточно прав для создания и записи в файл /run/mysqld/mysqld.sock (или /var/run/mysqld/mysqld.sock). Можно попробовать решить проблему следующим образом, если файл /run/mysqld/mysqld.sock (или /var/run/mysqld/mysqld.sock — указывайте файл в соответствии с вашими настройками в my.cnf) не существует, то создайте его:

Затем сделайте пользователя mysql владельцем этого файла:

Установите правильные права на этот файл:

Вновь попробуйте запустить сервис:

Проблемы запуска службы из-за несовместимой настройки apparmor

Если при запуске службы вы получаете ошибку и вы используете профили apparmor, проверьте, чтобы профиль apparmor позволял процессу mysqld иметь доступ в необходимую для него директорию.

Несовместимость может быть вызвана, к примеру, файл сокета для MySQL настроен на сохранение по пути /run/mysqld/mysqld.sock, но в профиле apparmor дано разрешение на /var/run/mysqld/mysqld.sock

Чтобы убедиться, что дело именно в apparmor, попробуйте отключить его:

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

К примеру для показанного примера решением проблемы является добавление в /etc/apparmor.d/usr.sbin.mysqld строк:

Служба mysqld не может запуститься из-за отсутствия места на диске

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

Освободите пространство на диске и перезапустите службу.

Служба mysqld не может запуститься так как порт 3306 используется другой программой

По умолчанию служба mysqld использует порт 3306 если этот порт использует другой процесс, то это является препятствием для запуска MySQL и в конечном счёте появляется рассматриваемая ошибка.

Для решения проблемы выясните, какая служба прослушивает порт 3306. Например, это можно сделать командой:

А затем остановите эту служу и удалите её из автозагрузки.

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

Вместо localhost попробуйте использовать 127.0.0.1

Вместо localhost в примерно такой команде:

Используйте 127.0.0.1:

(также обратите внимание на отсутствие пробела между -p и mypassword)

Служба mysqld не запускается из-за недоступности файлов баз данных

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

Неверно указан хост для подключения

Для указания удалённого хоста используется опция -h. Из-за привычки указывать хост после имени пользователя через знак @ (как это делается, например, для SSH), либо указывать удалённый хост без опции -h, команда может оказаться неверной в том плане, что вместо подключения к удалённому хосту, вы пытаетесь подключиться, например, к своей собственной системе, на которой служба MySQL не установлена.

Следовательно, отредактируйте команду, используйте опцию -h или более длинный вариант —host=имя_хоста для указания хоста, к которому вы хотите подключиться.

Кстати, для указания имени пользователя используется опция -u. Если пароль отличается от стандартного, то используется опция -P (заглавная буква). Опция -p (прописная буква) используется для указания базы данных, которая выбирается для использования.

Служба mysqld по умолчанию не добавляется в автозагрузку на некоторых дистрибутивах

Помните, что на некоторых дистрибутивах (например, производных Arch Linux, на Kali Linux) даже после установки MySQL или MariaDB они не добавляются в автозагрузку и не запускаются по умолчанию.

Для запуска службы и её авто старта при последующих включениях компьютера выполните команды:

Заключение

Итак, основной причиной ошибки «ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/run/mysqld/mysqld.sock’ (2 «No such file or directory»)» является незапущенная служба mysqld. Причин того, что указанная служба не запущена может быть множество: от банального факта что служба вообще не установлена, до более серьёзных проблем связанных с переполненностью диска и неправильной настройкой конфигурационных файлов и прав доступа к файлам.

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

Источник

Почему получаю SQLSTATE[HY000] [2002] Connection refused, а миграции при этом с БД работают?

Пытаюсь использовать YII локально с докером. Настроил БД. Миграции работают нормально, при этом когда пробую записать или прочитать что-то из таблицы user , к примеру, получаю ошибку :

Менял 127.0.0.1 на localhost.

  • Вопрос задан более трёх лет назад
  • 12059 просмотров

Средний 2 комментария

у меня была такая проблема когда перерёл на винде с докер на докер тулбокс

решил её добавив в docker-compose.yml в настроки mysql

Правильный ответ
Пришлось сделать ДВА(!) конфига . Отдельно для консоли и для остального приложения. Разница в
dsn.

Для консоли
‘dsn’ => ‘mysql:host=127.0.0.1;dbname=project’,
Для остального приложения
‘dsn’ => ‘mysql:host=mysql;dbname=project’,

Пытаюсь использовать YII локально с докером.

Привет, столкнулся с той же проблемой, решил твоим методом

Изменил ‘host=127.0.0.1’ на ‘host=mysql’ и ошибка пропала.

Хочу уточнить, ты пишешь:
«Для остального приложения
‘dsn’ => ‘mysql:host=mysql;dbname=project’, «

‘host = mysql’ это потому что контейнер с базой данных так называется (mysql) или если по-другому, то почему?

Источник

Docker MYSQL ‘[2002] Connection refused’

I was trying out Docker for the first time. Got a LEMP stack up and running, but I can’t connect to the MYSQL Database. Not on my Symfony application, not on PHPMyAdmin. The applications are returning the following error code:

An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused

This is my docker-compose.yml:

Could someone help me out? Thank you for your time.

8 Answers 8

The ‘[2002] Connection refused’ means you can reach the database server, but you don’t have right access for the user (in your case admin). By default mariadb have a root user with the password given by MYSQL_ROOT_PASSWORD and this user can connect from any server (%).

If you want use an over login to your databases, you have to create it in the databases server with the right granting on databases from chosen locations.

The problem here is that you have named your database server as ‘mysql’ (service name in the docker-compose file). But by default phpmyadmin tries to connect to a database server named ‘db’. Adding PMA_HOST: mysql under the environment section of the phpmyadmin service will resolve this problem.

I think that MYSQL_USERNAME and PMA_ARBITRARY are useless if you work with default configuration (connection with root to your databases server)

Источник

Устраняем типичные ошибки в 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, как показано ниже.

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

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

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

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

Для поиска порта, который прослушивается сервером, используйте команду 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 во время выполнения других процессов откройте окно командной строки и введите следующее:

Заключение

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

  • Первый и самый важный шаг — просмотреть журналы 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 , чтобы получить от него ответ.
  • Если при подключении проблема не связана с сервером, проверьте, нормально ли работает клиент. Попробуйте получить какие-либо его выходные данные для устранения неполадок.

Источник


Я пытаюсь настроить WordPress. У меня работают Apache и MySQL, и все учетные записи и база данных настроены. Я попытался установить простое соединение:

<?php
    $conn = mysql_connect('localhost', 'USER', 'PASSWORD');
    if(!$conn) {
        echo 'Error: ' . mysql_errno() . ' - ' . mysql_error();
    }
?>

И я всегда получаю это:

Ошибка: 2002 — Нет такого файла или каталога

О каком файле или каталоге может идти речь?

Я использую OS X Snow Leopard, использую встроенный Apache. Я установил MySQL с помощью dmg x86_64.

ОБНОВЛЕНИЕ: я обнаружил, что сокет находится в /tmp/mysql.sock, поэтому в php.ini я заменил им все вхождения неправильного пути.




Ответы:


Если вы используете Linux: неверный путь к файлу mysql.sock. Обычно это происходит потому, что вы используете (LAMPP) XAMPP, а его нет в /tmp/mysql.sock

Откройте файл php.ini и найдите эту строку:

mysql.default_socket

И сделай это

mysql.default_socket = /path/to/mysql.sock







У меня была аналогичная проблема, и я смог ее решить, обратившись к моему mysql с помощью 127.0.0.1вместо localhost.

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







Это для Mac OS X с собственной установкой Apache HTTP и выборочной установкой MySQL .

Ответ основан на отличном ответе @ alec-gorge, но, поскольку мне пришлось внести в Google некоторые конкретные изменения, чтобы настроить его в моей конфигурации, в основном для Mac OS X, я подумал, что добавлю его сюда для полноты картины.

Включить поддержку PHP5 для Apache HTTP

Убедитесь, что поддержка PHP5 включена в /etc/apache2/httpd.conf.

Отредактируйте файл sudo vi /etc/apache2/httpd.conf(введите пароль, когда его спросят) и раскомментируйте (удалите ;с начала) строку, чтобы загрузить модуль php5_module .

LoadModule php5_module libexec/apache2/libphp5.so

Запустите Apache HTTP с помощью sudo apachectl start(или, restartесли он уже запущен и его нужно перезапустить, чтобы перечитать файл конфигурации).

Убедитесь, что он /var/log/apache2/error_logсодержит строку, которая сообщает вам, что php5_module включен — вы должны увидеть PHP/5.3.15(или подобное).

[notice] Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch configured -- resuming normal operations

Поиск имени файла сокета

Когда MySQL запущен и работает (с ./bin/mysqld_safe), на консоль должны быть выведены строки отладки, которые сообщают вам, где вы можете найти файлы журнала. Обратите внимание на имя хоста в имени файла — localhostв моем случае — оно может отличаться для вашей конфигурации.

Файл, который идет после Logging to, важен. Вот где MySQL регистрирует свою работу.

130309 12:17:59 mysqld_safe Logging to '/Users/jacek/apps/mysql/data/localhost.err'.
130309 12:17:59 mysqld_safe Starting mysqld daemon with databases from /Users/jacek/apps/mysql/data

Откройте localhost.errфайл (опять же, ваш может называться по-другому), т.е. tail -1 /Users/jacek/apps/mysql/data/localhost.errузнать имя файла сокета — оно должно быть последней строкой.

$ tail -1 /Users/jacek/apps/mysql/data/localhost.err
Version: '5.5.27'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)

Обратите внимание на socket:часть — это файл сокета, который вы должны использовать php.ini.

Есть другой способ (некоторые говорят, что это более простой способ) определить местоположение имени файла сокета, войдя в MySQL и запустив:

show variables like '%socket%';

Настройка PHP5 с поддержкой MySQL — /etc/php.ini

Кстати о php.ini …

В /etcкаталоге есть файл /etc/php.ini.default . Скопируйте его в /etc/php.ini .

sudo cp /etc/php.ini.default /etc/php.ini

Откройте /etc/php.iniи найдите mysql.default_socket .

sudo vi /etc/php.ini

По умолчанию mysql.default_socket/var/mysql/mysql.sock. Вы должны изменить его на значение, которое вы отметили ранее — это было /tmp/mysql.sockв моем случае.

Замените /etc/php.iniфайл, чтобы он отражал имя файла сокета:

mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

Окончательная проверка

Перезапустите Apache HTTP.

sudo apachectl restart 

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






Помогла замена localhost на 127.0.0.1 в файле конфигурации (подключение к базе данных)!




Может помочь перезапуск сервера mysql. В моем случае перезапуск сервера сэкономил много времени.

service mysql restart

PS — использовать sudo service mysql restartдля некорневого пользователя.



Во-первых, убедитесь, что MySQL работает. Команда: mysqld start

Если вы по-прежнему не можете подключиться, то: Как выглядит ваш /etc/my.cnf? (или /etc/msyql/my.cnf)

Остальные 2 сообщения верны в том, что вам нужно проверить свой сокет, потому что 2002 — это ошибка сокета.

Отличное руководство по настройке LAMP: http://library.linode.com/lamp-guides/centos-5.3/index-print




Не то чтобы это вам сильно помогло, но в последних версиях (и даже менее свежих ) MySQL код ошибки 2002 означает «Невозможно подключиться к локальному серверу MySQL через сокет [имя-сокета]», так что это может сказать вам еще немного.



Расширяя ответ Матиаса Д здесь, я смог разрешить эту ошибку 2002 года как в MySQL, так и в MariaDB с точными путями, используя следующие команды:

Сначала получите фактический путь к сокету MySQL:

netstat -ln | grep -o -m 1 '/.*mysql.sock'

Затем получите путь PHP :

php -r 'echo ini_get("mysql.default_socket") . "n";'

Используя вывод этих двух команд , свяжите их:

sudo ln -s /actualpath/mysql.sock /phppath/mysql.sock

Если это вернется, No such file or directoryвам просто нужно создать путь к PHP mysql.sock, например, если ваш путь был, /var/mysql/mysql.sockвы бы запустили:

sudo mkdir -p /var/mysql

Затем попробуйте снова выполнить команду sudo ln .


Я бы проверил ваш файл php.ini и убедился, что mysql.default_socket установлен правильно, а также проверил, что ваш mysqld правильно настроен с файлом сокета, к которому он может получить доступ. Типичное значение по умолчанию — «/tmp/mysql.sock».



Я тоже столкнулся с этой проблемой, затем я изменил localhost на 127.0.0.1, он работает.


в моем случае у меня проблема с mysqli_connect.
когда я хочу подключиться,
mysqli_connect('localhost', 'myuser','mypassword')

mysqli_connect_error () возвращает мне эту ошибку «Нет такого файла или каталога»

это сработало для меня
mysqli_connect('localhost:3306', 'myuser','mypassword')




Ошибка 2002 означает, что MySQL не может подключиться к локальному серверу базы данных через файл сокета (например /tmp/mysql.sock).

Чтобы узнать, где находится ваш файл сокета, запустите:

mysql_config --socket

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

Затем дважды проверьте, правильно ли настроен ваш PHP-сокет MySQL:

php -i | grep mysql.default_socket

и убедитесь, что этот файл существует .

Проверить розетку:

mysql --socket=/var/mysql/mysql.sock

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

ln -vs /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

или исправьте свой файл конфигурации (например php.ini).

Чтобы проверить соединение PDO непосредственно из PHP, вы можете запустить:

php -r "new PDO('mysql:host=localhost;port=3306;charset=utf8;dbname=dbname', 'root', 'root');"

Также проверьте конфигурацию между Apache и CLI (интерфейс командной строки), поскольку конфигурация может отличаться.

Возможно, сервер запущен, но вы пытаетесь подключиться, используя порт TCP / IP, именованный канал или файл сокета Unix, отличный от того, который прослушивает сервер. Чтобы исправить это, вам нужно вызвать клиентскую программу (например, указав --portпараметр), чтобы указать правильный номер порта, или правильный именованный канал, или файл сокета Unix (например, --socketпараметр).

См .: Устранение неполадок при подключении к MySQL.


Другие утилиты / команды, которые могут помочь отследить проблему:

  • mysql --socket=$(php -r 'echo ini_get("mysql.default_socket");')
  • netstat -ln | grep mysql
  • php -r "phpinfo();" | grep mysql
  • php -i | grep mysql
  • Используйте XDebug xdebug.show_exception_trace=1в своемxdebug.ini
  • В OS X попробуйте sudo dtruss -fn mysqld, в Linux отладка сstrace
  • Проверьте права доступа к Unix-сокету: stat $(mysql_config --socket)и достаточно ли свободного места ( df -h).
  • Перезагрузите MySQL.
  • Проверить net.core.somaxconn.

Убедитесь, что ваш локальный сервер (MAMP, XAMPP, WAMP и т. Д.) Работает.



У меня была похожая проблема.
По сути, проблема в том, что, вероятно, запущено два экземпляра mysql.
A) Один работает в /etc/init.d
B) Лампа устанавливается в / opt / lamp
Решение:
Шаг 1: — Найдите все запущенные экземпляры mysql с помощью команды «find / | grep mysqld»
Шаг 2: — Завершите работу служб, работающих в /etc/init.d с использованием службы mysql stop

Шаг 3. — Перезапустите службы лампы с помощью / opt / lamp / lamp restart

Тебе должно быть хорошо :)


На Mac, прежде чем выполнять всю тяжелую работу, просто проверьте свои настройки System Preferences > MySQL. С тех пор я чаще всего сталкивался с этой проблемой The MySQL Server Instance is stopped.

Нажмите Start MySQL Serverкнопку, и произойдет волшебство.


Я использую PHP-FPM или несколько версий PHP на моем сервере. В моем случае я обновляю значение mysqli, так как нет параметра сокета по умолчанию mysql:

mysqli.default_socket

кому:

mysql.default_socket = /path/to/mysql.sock

спасибо @Alec Gorge


У меня такая же проблема. В итоге мой сокет был найден в /tmp/mysql.sock. Затем я добавил этот путь в php.ini. Я нашел сокет там, проверив страницу «Состояние сервера» в MySQL Workbench. Если вашего сокета нет в /tmp/mysql.sock, может быть, MySQL Workbench скажет вам, где он? (Допустим, вы используете MySQL Workbench …)



Digital Ocean MySql 2002-нет-такого-файла-или-каталога

Добавить этот конец файла /etc/mysql/my.cnf

[mysqld]
innodb_force_recovery = 1

Перезапустите MySql

service mysql restart


У меня тоже была такая же проблема на сервере Linux. Мне помогла команда sudo reboot , которая используется для перезагрузки сервера Linux.


включить и запустить службу mariadb

sudo systemctl включить mariadb.service

sudo systemctl start mariadb.service

Все отлично работало несколько месяцев с момента установки, сегодня утром встал на экране планшета вот такая замечательная надпись:
Can’t connect to database (2002: No such file or directory)

syslog
Mar 17 07:17:43 SmartHouse mysqld[892]: 2020-03-17 7:17:43 1995652912 [Note] /usr/sbin/mysqld (mysqld 10.1.23-MariaDB-9+deb9u1) starting as process 892 …
Mar 17 07:17:43 SmartHouse systemd[1]: nmbd.service: Supervising process 910 which is not our child. We’ll most likely not notice when it exits.
Mar 17 07:17:43 SmartHouse systemd[1]: Started Samba NMB Daemon.
Mar 17 07:17:46 SmartHouse kernel: [ 49.192161] Voltage normalised (0x00000000)
Mar 17 07:17:46 SmartHouse systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Mar 17 07:17:46 SmartHouse systemd[1]: Failed to start MariaDB database server.
Mar 17 07:17:46 SmartHouse systemd[1]: mariadb.service: Unit entered failed state.
Mar 17 07:17:46 SmartHouse systemd[1]: mariadb.service: Failed with result ‘exit-code’.
Mar 17 07:17:46 SmartHouse systemd[1]: Starting Real time performance monitoring…
Mar 17 07:17:47 SmartHouse systemd[1]: Started Real time performance monitoring.

majordomo.log
23:00:38 Closing thread: exec php -q ./scripts/cycle_websockets.php —params «a:0:{}» > /dev/null 2>&1
23:00:41 Starting thread: exec php -q ./scripts/cycle_websockets.php —params «a:0:{}» > /dev/null 2>&1
05:00:46 Closing thread: exec php -q ./scripts/cycle_websockets.php —params «a:0:{}» > /dev/null 2>&1
05:00:49 Starting thread: exec php -q ./scripts/cycle_websockets.php —params «a:0:{}» > /dev/null 2>&1

ssh
pi@SmartHouse:~ $ sudo service mysql start
sudo: unable to resolve host SmartHouse
Job for mariadb.service failed because the control process exited with error code.
See «systemctl status mariadb.service» and «journalctl -xe» for details.
pi@SmartHouse:~ $ systemctl status mariadb.service
● mariadb.service — MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2020-03-17 16:24:39 MSK; 1min 25s ago
Process: 7326 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (co
Process: 7215 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/g
Process: 7194 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited
Process: 7183 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited,
Main PID: 7326 (code=exited, status=1/FAILURE)
Status: «MariaDB server is down»

Mar 17 16:24:34 SmartHouse systemd[1]: Starting MariaDB database server…
Mar 17 16:24:36 SmartHouse mysqld[7326]: 2020-03-17 16:24:36 1995468592 [Note] /usr/sbin/mysqld (mysql
Mar 17 16:24:39 SmartHouse systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAI
Mar 17 16:24:39 SmartHouse systemd[1]: Failed to start MariaDB database server.
Mar 17 16:24:39 SmartHouse systemd[1]: mariadb.service: Unit entered failed state.
Mar 17 16:24:39 SmartHouse systemd[1]: mariadb.service: Failed with result ‘exit-code’.
…skipping…
● mariadb.service — MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2020-03-17 16:24:39 MSK; 1min 25s ago
Process: 7326 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (co
Process: 7215 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/g
Process: 7194 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited
Process: 7183 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited,
Main PID: 7326 (code=exited, status=1/FAILURE)
Status: «MariaDB server is down»
Mar 17 16:24:34 SmartHouse systemd[1]: Starting MariaDB database server…
Mar 17 16:24:36 SmartHouse mysqld[7326]: 2020-03-17 16:24:36 1995468592 [Note] /usr/sbin/mysqld (mysql
Mar 17 16:24:39 SmartHouse systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAI
Mar 17 16:24:39 SmartHouse systemd[1]: Failed to start MariaDB database server.
Mar 17 16:24:39 SmartHouse systemd[1]: mariadb.service: Unit entered failed state.
Mar 17 16:24:39 SmartHouse systemd[1]: mariadb.service: Failed with result ‘exit-code’.
~

Помогите восстановить!

2021.08.27

В новом обновлении файлы Битрикса конфликтуют со старыми версиями нашего решением.
Чтобы это исправить, мы доработали модуль Intec.Core.

Для восстановления работы сайта нужно обновить модуль Intec.Core через раздел админки Marketplace или вручную как описано ниже:

  1. Пройти по пути /bitrix/modules/intec.core/classes/
  2. Открыть файл Core.php
  3. Заменить его содержимое на код, представленный ниже
  4. Сохранить файл.


<?php
namespace intec;

require(__DIR__ . '/CoreBase.php');

use inteccoreCoreBase;
use inteccorediContainer;
use inteccorehelpersEncoding;

class Core extends CoreBase
{
}

spl_autoload_register(['intecCore', 'autoload'], true, true);
Core::$classes = require(__DIR__.'/classes.php');
Core::$container = new Container();

// global $DB;
$settingsDB = include($_SERVER["DOCUMENT_ROOT"]."/bitrix/.settings.php");
$settingsDB = $settingsDB["connections"]["value"]["default"];

$DBHostParts = explode(':', $settingsDB["host"]);
$DBHostAddress = $DBHostParts[0];
$DBHostPort = isset($DBHostParts[1]) ? $DBHostParts[1] : null;

(new corebaseApplication([
    'id' => 'intec.core',
    'basePath' => $_SERVER['DOCUMENT_ROOT'],
    'charset' => Encoding::resolve(SITE_CHARSET),
    'components' => [
        'db' => [
            'dsn' => 'mysql:host='.$DBHostAddress.';dbname='.$settingsDB["database"].(!empty($DBHostPort) ? ';port='.$DBHostPort : null),
            'username' => $settingsDB["login"],
            'password' => $settingsDB["password"],
            'charset' => Encoding::resolve(SITE_CHARSET, Encoding::TYPE_DATABASE)
        ]
    ]
]));

unset($DBHostParts);
unset($DBHostAddress);
unset($DBHostPort);

Core::setAlias('@root/linked', dirname(dirname(dirname(dirname(__DIR__)))));
Core::setAlias('@bitrix', '@root'.BX_ROOT);
Core::setAlias('@upload', '@root/upload');
Core::setAlias('@modules', '@bitrix/modules');
Core::setAlias('@resources', '@bitrix/resources');
Core::setAlias('@templates', '@bitrix/templates');
Core::setAlias('@themes', '@bitrix/themes');
Core::setAlias('@intec/core/module', dirname(__DIR__));
Core::setAlias('@intec/core/libraries', '@intec/core/module/libraries');
Core::setAlias('@intec/core/resources', '@resources/'.Core::$app->id);

require(__DIR__.'/web.php');

Наши решения

Понравилась статья? Поделить с друзьями:

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

  • Daz3d resource error
  • Daz3d render during error
  • Daz to blender bridge error
  • Daz studio resource error
  • Dayz руки крюки как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии