2.9.2.1 Устранение неполадок при запуске сервера MySQL
В этом разделе представлены рекомендации по устранению неполадок при запуске сервера. Дополнительные рекомендации для систем Windows см. в разделе 2.3.5 «Устранение неполадок при установке сервера MySQL для Microsoft Windows».
Если у вас возникли проблемы с запуском сервера, попробуйте следующие действия:
-
Проверьте журналы, чтобы понять причину, по которой сервер не запускается. Файлы журналов находятся в каталоге (обычно
C:\Program Files\MySQL\MySQL Server 5.7\dataв Windows,/usr/local/mysql/dataдля бинарного дистрибутива Unix/Linux и/usr/local/varдля дистрибутива исходного кода Unix/Linux). Посмотрите в каталоге данных на файлы с именами видаиhost_name.err, гдеhost_name.loghost_name— имя вашего хоста сервера. Затем изучите несколько последних строк этих файлов. Используйтеtailдля их отображения:$>
tail$>host_name.errtailhost_name.log -
Укажите любые специальные параметры, необходимые для используемых движков хранения данных. Вы можете создать файл
my.cnfи указать параметры запуска для используемых движков. Если вы будете использовать движки хранения данных, поддерживающие транзакционные таблицы (InnoDB,NDB), убедитесь, что они настроены нужным образом перед запуском сервера. Если вы используете таблицыInnoDB, см. раздел 14.8 «Настройка InnoDB» для рекомендаций и раздел 14.15 «Параметры запуска InnoDB и системные переменные» для синтаксиса параметров.Хотя движки хранения данных используют значения по умолчанию для параметров, которые вы опускаете, Oracle рекомендует просмотреть доступные параметры и указать явные значения для любых параметров, значения по умолчанию которых не подходят для вашей установки.
-
Убедитесь, что сервер знает, где найти каталог данных. Сервер mysqld использует этот каталог в качестве текущего. Именно здесь он ожидает найти базы данных и записать файлы журналов. Сервер также записывает файл pid (ID процесса) в каталог данных.
Расположение каталога данных по умолчанию жёстко закодировано при компиляции сервера. Чтобы определить настройки пути по умолчанию, вызовите mysqld с параметрами
--verboseи--help. Если каталог данных расположен в другом месте вашей системы, укажите это расположение с помощью параметра--datadirдля mysqld или mysqld_safe, в командной строке или в файле параметров. В противном случае сервер работает неправильно. В качестве альтернативы параметру--datadirвы можете указать mysqld расположение каталога базового каталога, в котором установлен MySQL, с помощью параметра--basedir, и mysqld ищет каталогdataтам.Чтобы проверить эффект указания параметров пути, вызовите mysqld с этими параметрами, за которыми следуют параметры
--verboseи--help. Например, если вы измените расположение на каталог, где установлен mysqld, а затем выполните следующую команду, она покажет эффект запуска сервера с базовым каталогом/usr/local:$>
./mysqld --basedir=/usr/local --verbose --helpВы можете указать и другие параметры, такие как
--datadir, но--verboseи--helpдолжны быть последними параметрами.После определения нужных настроек пути запустите сервер без
--verboseи--help.Если mysqld в настоящее время работает, вы можете узнать используемые им настройки пути, выполнив эту команду:
$>
mysqladmin variablesИли:
$>
mysqladmin -hhost_namevariableshost_name— имя хоста сервера MySQL. -
Убедитесь, что сервер может получить доступ к каталогу данных. Владение и разрешения на каталог данных и его содержимое должны разрешать серверу чтение и изменение.
Если при запуске mysqld вы получите
Errcode 13(что означаетPermission denied), это означает, что права доступа к каталогу данных или его содержимому не позволяют серверу получить доступ. В этом случае измените разрешения для соответствующих файлов и каталогов, чтобы сервер мог их использовать. Вы также можете запустить сервер какroot, но это создает проблемы с безопасностью и следует избегать.Перейдите в каталог данных и проверьте права доступа к каталогу данных и его содержимому, чтобы убедиться, что сервер имеет доступ. Например, если каталог данных —
/usr/local/mysql/var, используйте эту команду:$>
ls -la /usr/local/mysql/varЕсли каталог данных или его файлы или подкаталоги не принадлежат учетной записи входа, которую вы используете для запуска сервера, измените их права доступа на эту учетную запись. Если учетная запись называется
mysql, используйте эти команды:$>
chown -R mysql /usr/local/mysql/var$>chgrp -R mysql /usr/local/mysql/varДаже с правильными правами доступа MySQL может не запуститься, если на вашей системе запущено другое программное обеспечение безопасности, которое управляет доступом приложений к различным частям файловой системы. В этом случае переконфигурируйте это программное обеспечение, чтобы разрешить mysqld доступ к каталогам, которые он использует во время нормальной работы.
-
Проверьте, доступны ли сетевые интерфейсы, которые сервер хочет использовать.
Если возникают какие-либо из следующих ошибок, это означает, что какая-то другая программа (возможно, другой сервер mysqld) использует TCP/IP-порт или файл сокета Unix, которые mysqld пытается использовать:
Can't start server: Bind on TCP/IP port: Address already in use Can't start server: Bind on unix socket...
Используйте ps, чтобы определить, работает ли другой сервер mysqld. Если это так, остановите сервер перед повторным запуском mysqld. (Если другой сервер работает, и вам действительно нужно запустить несколько серверов, вы можете найти информацию об этом в разделе 5.7 «Запуск нескольких экземпляров MySQL на одном компьютере».)
Если другой сервер не работает, выполните команду
telnet. (Номер порта MySQL по умолчанию — 3306.) Затем нажмите Enter несколько раз. Если вы не получите сообщение об ошибке, похожее наyour_host_nametcp_ip_port_numbertelnet: Unable to connect to remote host: Connection refused, значит, какая-то другая программа использует TCP/IP-порт, который пытается использовать mysqld. Найдите эту программу и отключите её или сообщите mysqld о прослушивании другого порта с помощью параметра--port. В этом случае при подключении к серверу с помощью TCP/IP укажите тот же нестандартный номер порта для клиентских программ.Еще одна причина недоступности порта заключается в том, что на вашем компьютере работает брандмауэр, который блокирует соединения к нему. В этом случае измените настройки брандмауэра, чтобы разрешить доступ к порту.
Если сервер запускается, но вы не можете подключиться к нему, убедитесь, что в файле
/etc/hostsесть запись такого вида:127.0.0.1 localhost
Если вы не можете запустить mysqld, попробуйте создать файл трассировки, чтобы найти проблему, используя параметр
--debug. См. раздел 5.8.3 «Пакет DBUG».
© 2025 Oracle
Licensed under the GPLv2 License.