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

На сайте ошибка базы данных

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

  • «Error Establishing a Database Connection»,
  • «Database connection error (2): Could not connect to MySQL»,
  • «DB error»,
  • «Could not connect to MySQL»,
  • «Невозможно подключиться к базе данных».

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

Что делать, если неверно прописаны реквизиты подключения к базе данных

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

  1. 1.

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

  2. 2.

    Войдите в панель управления хостингом, найдите и откройте конфигурационный файл. Он может располагаться как в корневой папке, так и в других директориях сайта.

  3. 3.

    Проверьте в файле реквизиты. В качестве сервера базы данных должен быть прописан localhost (обратите внимание, не 127.0.0.1). Если вы используете удалённую базу данных на каком-либо другом сервере, пропишите его IP-адрес и убедитесь, что сервер доступен.

  4. 4.

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

  5. 5.

    Обновите пароль базы данных. Скопируйте пароль, который указан в конфигурационном файле. Задайте его в качестве нового пароля пользователя базы данных: Как изменить пароль пользователя базы данных.

Готово, теперь ошибка должна быть устранена.

Помогла ли вам статья?

Спасибо за оценку. Рады помочь 😊


 👍

В статье рассказывается:

  1. Суть и причины возникновения ошибки установки соединения с базой данных
  2. Первые шаги устранения ошибки установки соединения
  3. 3 способа устранения ошибки установки соединения с БД
  4. Дополнительные методы устранения ошибки установки соединения с БД
  5. Профилактика возникновения ошибки установки соединения с базой данных
  6. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.

    Бесплатно от Geekbrains

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

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

Суть и причины возникновения ошибки установки соединения с базой данных

Чтобы понять, что означает “Ошибка установки соединения с базой данных” (Error establishing a database connection) разберемся, как работает WordPress и выясним, что такое база данных.

WordPress – одна из самых популярных CMS – систем., т.е. систем управления контентом. Это программное обеспечение, позволяющее добавлять, удалять и редактировать содержание вашего сайта без знаний языков программирования. Вся информация о контенте хранится в базе данных.

База данных — это и есть совокупность информации, организованная так, чтобы при необходимости компьютер смог ее найти и обработать. Все сведения о вашем WordPress сайте хранится в базе данных на серверах вашего хостинг- провайдера. Любое действие на сайте приводит кому, что WordPress посылает запрос на нужную информацию в базу данных. Если запрос успешно обработан, то пользователь получает нужную информацию.

Суть и причины возникновения ошибки установки соединения с базой данных

Суть и причины возникновения ошибки установки соединения с базой данных

Одним из наиболее важных файлов в WordPress является wp-config.php файл. Он находится в корневой директории и содержит сведения о конфигурации вашего сайта, в том числе и информацию о подключении к базе данных. Важно, чтобы эта информация была прописана в строго определенном порядке:

  • Database Name — Имя базы данных
  • Database Username — Имя пользователя базы данных
  • Database Password — Пароль пользователя базы данных
  • Database Host — Сервер базы данных

Таким образом, в большинстве случаев “Ошибка установки соединения с базой данных” возникает, если информация, описанная выше, указана не верно. Кроме того, ошибка может быть вызвана повреждением базы данных или перегруженностью сервера.

Первые шаги устранения ошибки установки соединения

Рассмотрим основные причины ошибки установки соединения с базой данных и способы их устранения.

pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

Уже скачали 22630 pdf иконка

Прежде всего, настоятельно рекомендуем создать резервную копию всей важной информации и обновлять ее после каждого значимого изменения. Тогда вы гарантированно не потеряете данные. А в случае серьезной ошибки и восстановления базы данных, не столкнетесь с необходимостью создания сайта с нуля. Для создания резервной копии используются плагины Duplicator или All-in-One WP Migration.

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

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

Первые шаги устранения ошибки установки соединения

Первые шаги устранения ошибки установки соединения

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

3 способа устранения ошибки установки соединения с БД

Проверка памяти сервера

Предположим, вы проверили учетные данные в фале wp-config.php и убедились в их корректности. Следующим шагом следует проверить сервер на наличие памяти. Довольно часто ошибка соединения возникает из-за перегруженности сервера. Если сервер хостинг-провайдера испытывает трудности, то и ваш сайт WordPress будет замедляться.

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

Подключитесь к удаленному серверу через SSH, используя IP-адрес сервера:

ssh 8host@ <server IP>

Затем убедимся, работает ли MySQL с помощью утилиты netstat. Она позволяет отслеживать проблемы, связанные с производительностью сети. Чтобы увидеть список TCP-портов, которые прослушиваются, и имена программ, используйте команду:

sudo netstat -plt

где флаги –p, –l и –t означают program (программы), listening (прослушивание) и TCP соответственно.

В результате выполнения команды вы увидите список. Найдите в нем mysqld – это сервер MySQL:

Проверка памяти сервера

Проверка памяти сервера

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

sudo systemctl start mysql

Заметьте, что в некоторых версиях и дистрибутивах Linux используется mysqld или mysql-server, а не mysql. Попробуйте разные варианты, чтобы определить, какой из них применяется в вашей системе.

После выполнения этой команды сервер запустится. Проверьте это с помощью sudo netstat -plt, как описано ранее.

По какой причине сервер MySQL может завершить работу? Эта система очень эффективна и производительна, но не всегда стабильна. Если количество одновременно выполняемых задач велико, то она существенно замедляется. Чтобы минимизировать возможные проблемы, нужно следить за объемом доступной памяти.

Скачать
файл

Проверьте log-файлы и ищите в них сообщения об ошибках. Для поиска используйте команду zgrep:

zgrep -a «allocate memory» /var/log/mysql/error.log*

В результате выполнения данной команды вы увидите все log-файлы, содержащие error.log и ‘allocate memory’. Поиск будет выполняться по файлам в директории /var/log/mysql/.

На выводе вы можете увидеть подобную строку:

2017-04-11T17:38:22.604644Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

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

Что такое база данных – особенности, принцип работы и выбора системы управления

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

Если команда zgrep не выдала списка log-файлов, то сервер не испытывает проблем с нехваткой памяти. Значит проблемы установки соединения с базой данных может быть связана неверными учетными данными MySQL.

Проверка учётных данных MySQL

Если вы поменяли хостинг-провайдера или переместили установку WordPress на новый сервер, то информация в файле wp-config.php становится неактуальной. Вам необходимо поменять соответствующие строки в файле, иначе подключение к базе данных будет невозможно.

Чтобы найти этот файл используйте команду find:

sudo find / -name «wp-config.php»

Данная команда будет искать файл с указанным именем в корневой папке. Если он будет найден, то на выходе вы увидите путь к найденному файлу:

/var/www/html/wp-config.php

Чтобы открыть его в текстовом редакторе nano, напишите:

sudo nano /var/www/html/wp-config.php

Дарим скидку от 60%
на обучение «Программист Java» до 24 сентября

Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей

Забронировать скидку


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

/** The name of the database for WordPress */

define(‘DB_NAME’, ‘database_name’);

/** MySQL database username */

define(‘DB_USER’, ‘database_username’);

/** MySQL database password */

define(‘DB_PASSWORD’, ‘database password’);

Проверка учётных данных MySQL

Проверка учётных данных MySQL

Вместо ‘database_name’, ‘database_username’ и ‘database_password’ должны быть указаны корректные данные о вашей БД. При необходимости отредактируйте их. На забудьте сохранить файл и выйти из редактора, нажатием CTRL-O, CTRL-X.

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

mysqlshow -u database_username -p

Затем введите пароль. Если имя пользователя или пароль не верные, то вы увидите ошибку Access denied. В противном случае на экран будет выведена информация обо всех базах данных, к которым у вас есть доступ.

+———————+

|Databases |

+———————+

| information_schema |

| database_name |

+———————+

Если вы видите имя нужной базы данных в списке, то в файле wp-config.php указаны корректные данные. Теперь можно перезапустить WordPress сайт.

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

Только до 25.09

Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней

Список документов:


ТОП-100 площадок для поиска работы от GeekBrains


20 профессий 2023 года, с доходом от 150 000 рублей


Чек-лист «Как успешно пройти собеседование»

Чтобы получить файл, укажите e-mail:

Введите e-mail, чтобы получить доступ к документам

Подтвердите, что вы не робот,
указав номер телефона:

Введите телефон, чтобы получить доступ к документам


Уже скачали 52300

Восстановление базы данных WordPress

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

  • неудачное обновление;
  • сбой базы данных;
  • некорректный плагин.

Непосредственно на сайте в таком случае вы все также увидите сообщение — «ошибка установки соединения с базой данных».

Попытаемся восстановить БД. Откройте файл wp-config.php с помощью текстового редактора:

sudo nano /var/www/html/wp-config.php

Вставьте в файл строку:

define(‘WP_ALLOW_REPAIR’, true);

Таким образом включается функция восстановления базы данных. Сохраните файл и закройте его.

Затем откройте браузер и перейдите по следующему URL:

http://www.example.com/wp-admin/maint/repair.php

Не забудьте заменить www.example.com на URL вашего сайта или укажите IP.

Тогда вы увидите следующее сообщение на экране:

WordPress can automatically look for some common database problems and repair them.

Выберите вариант Repair Database. В появившейся странице вы увидите процент проверенных и восстановленных данных.

После восстановления вернитесь к файлу wp-config.php. Удалите из него функцию, ответственную за восстановление базы данных. Это необходимо сделать из соображений безопасности, иначе доступ к восстановлению БД будет у всех.

Восстановление базы данных WordPress

Восстановление базы данных WordPress

Если после восстановления базы данных WordPress все еще выдает ошибку о проблеме соединения, восстановите базу данных из бэкапа (резервной копии).

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

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

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

Дополнительные методы устранения ошибки установки соединения с БД

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

Автоматизированная система базы данных: хранение и использование информации

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

  • Обновление настройки в wp_options

Некоторые пользователи отмечали, что ошибка была устранена после выполнения запроса к БД через phpMyAdmin:

[sql]UPDATE wp_options SET option_value=’ http://your_site.ru’ WHERE option_name=’siteurl’;[/sql]

Где вместо ’your_site.ru ‘укажите URL вашего сайта.

  • Подключение к базе данных с правами root

Если вы используете виртуальный сервер и можете воспользоваться root правами, то попробуйте подключиться к БД через файл test.php. В случае успеха, попробуйте также подключиться к БД вашего сайта через файл wp-config.php. Затем проверьте работу сайта.

Работать на сервере под учётной записью root – большая ошибка. Обязательно создайте нового пользователя через phpMyAdmin. Не забудьте внести в wp-config.php файл логин и пароль созданного пользователя.

Профилактика возникновения ошибки установки соединения с базой данных

Никто не застрахован от ошибки установки соединения с базой данных при работе с Вордпресс. Однако, вы можете минимизировать шанс остановки сайта, если будете следовать следующим рекомендациям:

  • Тщательно выбирайте хостинг-провайдера, который подходит именно для работы с CMS WordPress. Он должен иметь хорошую техподдержку, обеспечивать высокую скорость и стабильность. Зачастую проблемы в работе сайта связаны именно с хостингом.
  • Регулярно делайте бэкап. Вы можете самостоятельно выбрать один из плагинов, например, UpdraftPlus, Duplicator или All-in-One WP Migration.

К сожалению, если вы не имеете доступ в панель управления сайта, то вы не сможете воспользоваться резервной копией. Тогда вам нужно будет воспользоваться программным обеспечением для управления хостингом. Например, ISPmanager. Он позволит вам сделать полную резервную копию сайта.

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

Asked

Viewed
110k times

I has had two days searching and exploring solutions regarding the error 2003.
Can’t connect to mysql server on ‘Server name’.

The firewall is off and I had added the port 3306, the one that mysql uses.

Any recommendation?

  • mysql
  • database-connection
  • sqlyog

asked Nov 1, 2013 at 13:11

Sterling Diaz's user avatar

Sterling DiazSterling Diaz

3,7892 gold badges31 silver badges35 bronze badges

11 Answers

Please refer this FAQ which describes how to solve this issue: http://faq.webyog.com/content/23/15/en/error-no-2003-can_t-connect.html

Error No. 2003: Can’t connect to MySQL server on ‘localhost’ (or some other host)

simply means that connection is not possible for one of the following (or similar) reasons:

  • There is no MySQL server running at the specified host

  • Connection to the MySQL server is not allowed using TCP-IP. Check the ‘skip-networking’ setting in the MySQL configuration file (my.ini on Windows, my.cnf on Unix/Linux). It shall be commented out like ‘#skip-networking’. If it is not commented out, then do it and restart the MySQL server for the change to take effect. SQLyog needs to connect using TCP-IP.

  • Some networking issue prevents connection. It could be a network malconfiguration or a firewall issue.

  • When trying to connect to a MySQL server at an ISP this error message often indicates that direct connection to MySQL has been blocked. You must then use HTTP-tunneling or SSH-tunneling to connect.

answered Nov 5, 2013 at 12:03

Sathish D's user avatar

Sathish DSathish D

4,85431 silver badges44 bronze badges

1

  • «Simply means», then lists four different, complex answers. :-)

    Feb 11, 2021 at 3:51

It worked for me.controll pannel->administrative tools->services->mysql and start mysql.Some times simple solution saves lot of time.

answered Nov 20, 2015 at 11:12

Mithun Debnath's user avatar

Mithun DebnathMithun Debnath

5881 gold badge8 silver badges23 bronze badges

normally means that there is no MySQL server running on the system .
check your server running

answered Apr 7, 2014 at 5:04

Akhil das's user avatar

this could be due to firewalls of the system try below command and check

service iptables stop

answered Apr 16, 2014 at 10:31

user1397770's user avatar

user1397770user1397770

1353 silver badges16 bronze badges

i have the same issue but i fix it.
my hostname is DEBIAN, i just modify the file my.cnf ( for mysql) and set bindaddress : 0.0.0.0

this option say to mysql to listen all interfaces. restart your server and finish

answered Dec 7, 2016 at 9:35

napster's user avatar

if your question refer to can’t connect to mysql on hosting (cpanel), i also had same problem.
I also turn off firewall, but it doesn’t solve my problem.
Rather than using server name or domain name on Mysql Host Address, i using ip address given by hosting provider.
And it works.

Eric Aya's user avatar

Eric Aya

69.5k35 gold badges181 silver badges253 bronze badges

answered Dec 29, 2018 at 7:26

Nyoman Indra Darmawan's user avatar

Going to services and starting MYSQL service doesn’t work for me.
Finally, I hit the following commands inside the MYSQL command-line client:
ALTER USER ‘username’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;

answered May 11, 2020 at 8:37

Sundar Gautam's user avatar

Sundar GautamSundar Gautam

4451 gold badge6 silver badges10 bronze badges

There is a high chance that you are making one of the two mistakes.
First :
You are inputting the wrong password. check your password or change it with
this command
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
In place of 'very_strong_password' give a strong password of your choice.
Second:
You are using ‘@’ in the password which can be confused with the other with @localhost.

Saman Salehi's user avatar

Saman Salehi

1,0041 gold badge12 silver badges19 bronze badges

answered Dec 14, 2021 at 14:21

ja7m's user avatar

1

  • Please fix formatting and spelling (you can use Grammarly or some service like this).

    Dec 14, 2021 at 16:22

The SQL Sever might not be installed.
Please refer this to install:
MySQL

Marcus Cantu's user avatar

answered Aug 27, 2018 at 16:26

shreesh katti's user avatar

shreesh kattishreesh katti

7591 gold badge10 silver badges23 bronze badges

The solution worked for me
Go to services and start MySql services
window: press the start button and search services. Then star MySql services
enter image description here

answered Nov 20, 2022 at 16:04

Zia Khan's user avatar

Zia KhanZia Khan

1862 silver badges9 bronze badges

In my case main application installer will install mysql and try to connect with odbc. In that time it throws above error. The password given for configuring mysql was wrong. So I changed it.

Login as user root with blank password in mysql client.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc';

Password changed and same password I used for configuration.

user16217248's user avatar

user16217248

3,19421 gold badges19 silver badges37 bronze badges

answered May 18 at 3:41

Anonymous's user avatar

  • The Overflow Blog
  • Featured on Meta

Linked

Related

Hot Network Questions

  • Why do programming languages use the asterisk * for multiplication?

  • Can invoke_signed Be Used in Solana Native Programs to Handle SPL Tokens for Staking?

  • Does 「2メートルくらい」 really mean «2 meters or slightly more» instead of «approximately 2 meters»?

  • How big would a dog like the one described need to be to survive an attack by the big cat I’ve described?

  • Online shopping: order date vs shipping date vs charge date

  • Can a bucking transformer get «high on its own supply»?

  • Should I make my «big idea» first?

  • Is it common practice to take multiple hashes of the same object?

  • given 2 lowpass digital IIR filters find bandpass coefficients

  • How come negative power supply has negative voltage only

  • What happens if you ignore a howler?

  • Double sharp: how to analyse a chord in Moonlight Sonata 3rd movement?

  • Is Venus in our sun’s habitable zone?

  • Equation-of-state for a photon gas

  • Which is your favourite X or what is your favourite X?

  • What’s the meaning of «soli» in this sentence?

  • The usage of «can not» vs. «cannot» in mathematics

  • Comprised of both

  • Career change: Entering Academia realistic at 36?

  • Find the largest sum such that no two elements are touching

  • How can I find out what % of the health insurance premium my employer pays?

  • Difference between 怎么办 and 做什么?

  • Is my replacement light switch wiring correct?

  • Filter a list of strings to create a separate list of those that match a given prefix

more hot questions

Question feed

Your privacy

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Ошибка подключения к базе данных («Error establishing a database connection», «Access denied for user..» или с другим текстом, но похожая по смыслу) — одна из самых простых в устранении. Она говорит о том, что данные для подключения к базе некорректны, и всё исправление можно свести к следующим пунктам: 

Позвольте мне подробнее рассказать об исправлении данной ошибки.  

Шаг 1 — Проверка актуальных данных базы

Перейдите в список баз данных:

Нам нужны эти данные: 

Можете либо записать их, либо оставить страницу открытой в отдельной вкладке. 

Шаг 2 — Файл конфигурации

Перейдите в Файловый менеджер

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

Шаг 3 — Внесение актуальной информации

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

WordPress

В файле /public_html/wp-config.php  это будут поля DB_NAME, DB_USER, DB_PASSWORD и DB_HOST. Указать правильные значения нужно таким образом:
DB_NAME — База данных MySQL;
DB_USER — Пользователь MySQL;
DB_PASSWORD — Пароль, который Вы задали при создании базы;
DB_HOST — MySQL Сервер.
То есть это будет выглядеть таким образом: 

OpenCart

В файле /public_html/config.php  найдите поля DB_HOSTNAME, DB_USERNAME, DB_PASSWORD и DB_DATABASE. Указать правильные значения нужно таким образом:
DB_HOSTNAME — MySQL Сервер;
DB_USERNAME — Пользователь MySQL;
DB_PASSWORD — Пароль, который Вы задали при создании базы;
DB_DATABASE — База данных MySQL;
То есть это будет выглядеть таким образом: 

Ещё один файл конфигурации находится в /public_html/admin/config.php — там нужно внести аналогичные изменения.

Joomla

В файле /public_html/configuration.php  найдите поля public $host, public $user, public $password и public $db. Указать правильные значения нужно таким образом:
public $host — MySQL Сервер;
public $user — Пользователь MySQL;
public $password — Пароль, который Вы задали при создании базы;
public $db — База данных MySQL;
То есть это будет выглядеть таким образом: 

Обратите внимание: не нужно добавлять дополнительные пробелы или стирать существующие символы (такие как ' ; ) и другие) — это приведёт к ошибке. 

После того как новые значения заданы — сохраните изменения и перезагрузите страницу сайта с помощью комбинации Ctrl+F5. 

Если ошибка не исчезла

Если ошибка не исчезла после описанных действий, значит, базе задан другой пароль. Чтобы его изменить, скопируйте значение из файла конфигурации (без скобок и кавычек):

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

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

Когда Вы обновите страницу сайта после этого, всё будет работать корректно 😊 

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 или консоли).

Понравилась статья? Поделить с друзьями:
  • Ошибка не удалось сохранить контакт xiaomi
  • Ошибка не удалось подключиться к автономному режиму
  • Ошибка не удалось скопировать файл restore php
  • Ошибка не удалось создать лобби дота
  • Ошибка не удалось подключиться к torrserver lampa