У меня есть два сервера: один - это веб-сервер под управлением apache и php, а другой - сервер базы данных с MySQL. Первая использует базу данных второго, 24 часа в сутки, 7 дней в неделю.Не удается подключиться к серверу MySQL на «IP (4)
Проблема заключается в том, который в последнее время стали иметь ошибки иногда ежедневно, где PHP приложения показывают ниже сообщение:
Can't connect to MySQL server on 'IP_DO_BANCO_DE_DADOS' (4)
У нас есть некоторые PHP-приложений в нашем веб-сервере. Один из этих приложений (унаследованных), который не использует какие-либо рамки, и использует PHP изначально для подключения к MySQL:
function AbreBD($mysqli = false) {
global $conexao, $selecao, $conexao_mysqli;
$servidor = '192.168.101.20:3306';
$usuarioBD = 'user';
$senhaBD = 'user';
$conexao = mysql_connect($servidor, $usuarioBD, $senhaBD);
$selecao = mysql_select_db("bioextratus", $conexao);
if ($mysqli) {
$conexao_mysqli = new mysqli($servidor, $usuarioBD, $senhaBD, "bioextratus");
}
}
Учитывая, что приведенный выше код для унаследованного приложения, и до сих пор использует драйвер MySQL вместо из mysqli. Даже в нашем самом современном приложении с каркасом codeigniter эта проблема возникает.
Я верю, что проблема заключается в конфигурации MySQL или сетевой проблемы, несмотря на то, что сервис MySQL всегда доступен, а также связь между двумя серверами.
Содержание файла my.cnf сервера MySQL не является (нет комментариев):
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
explicit_defaults_for_timestamp = false
open_files_limit = 102400
bind-address = 0.0.0.0
key_buffer = 16M
key_buffer_size = 512M
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 8M
max_allowed_packet = 16M
thread_stack = 196K
thread_cache_size = 8
myisam-recover-options = BACKUP
query_cache_limit = 64M
query_cache_type = 1
query_cache_size = 256M
max_connections = 1024
max_user_connections = 0
sort_buffer_size = 2M
join_buffer_size = 1M
tmp_table_size = 64M
max_heap_table_size = 18M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[isamchk]
key_buffer = 12M
У вас возникла одна из двух проблем (или, возможно, и то, и другое). Либо ваш сервер базы данных слишком занят, либо сетевое соединение между веб-сервером и сервером базы данных слишком занято. В любом случае, здесь недостаточно данных для диагностики проблемы. Если это можно решить с помощью программирования, здесь нет ничего, что позволило бы нам помочь. Вам необходимо профилировать систему и определить узкие места. Только ты можешь это сделать. –
Вы недавно изменили конфигурацию? или проблема начата без изменений? являются ли серверы той же локальной сетью или у вас есть другие неизвестные переменные, представленные хостинг-провайдерами? Нам нужна дополнительная информация. – DevDonkey