Ошибки подключения к удаленной базе данных mysql из wordpress из-за устранения проблемы с IP-адресом

#php #mysql #wordpress #ipv6

#php #mysql #wordpress #ipv6

Вопрос:

Я размещаю 2 droplets на digitalocean, и на обоих включен IPV6. На одном droplet размещен один сайт, а на другом — установка WordPress. Я хотел бы получить некоторые данные из этой базы данных, поэтому я настраиваю сеть IPV6 на обеих каплях.

Я создал пользователя для mysql по IPV6-адресу WP droplet. Когда я тестирую соединение с терминала wp droplet mysql -u wordpressuser -h my:db:droplet:ipv6:address -P 3306 -p , он успешно подключается, и я вошел в систему. все привилегии предоставляются этому пользователю.

На обеих каплях я открыл порт 3306. Если я попытаюсь выполнить адрес telnet my_ipv6, он завершается с ошибкой «Временный сбой в разрешении имен»

Когда я смотрю на droplet, в котором размещена база данных, журнал ошибок mysql показывает:

 2020-10-12T14:58:25.711241Z 0 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.7.31-0ubuntu0.18.04.1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)
2020-10-12T15:02:47.746064Z 5 [Warning] IP address 'my:wp:droplet:ipv6:address' could not be resolved: Name or service not known
  

Я полагаю, что кто-то захочет узнать, что находится в моем файле conf, так что поехали:

 [mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
#
# * Basic Settings
#
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
lc-messages-dir = /usr/share/mysql
skip-external-locking
skip-host-cache
skip-name-resolve

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address          = 127.0.0.001
#
# * Fine Tuning
#
key_buffer_size         = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
# * Fine Tuning
#
key_buffer_size         = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover-options  = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit       = 1M
query_cache_size        = 16M
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries       = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id              = 1
#log_bin                        = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size   = 100M
  

Как я могу добиться успешного подключения? Я просто не понимаю, чего мне не хватает, и я новичок в WordPress с добавленной внешней базой данных.

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

  • mysql версии 14.14, дистрибутив 5.7.31, для Linux (x86_64) с использованием оболочки EditLine
  • Ubuntu 18.04 LTS

В WordPress я попытался подключиться через php-код из темы ark:

 $mydb = new wpdb('wordpressuser','my_password','my_external_db','my:external:ipv6:address');
$closed = $mydb->get_results("SELECT * from closed");
echo "<ul>";
foreach ($closed as $obj) :
   echo "<li>".$obj->Name."</li>";
endforeach;
echo "</ul>";
    enter code here
  

Комментарии:

1. Похоже, что MySQL пытается выполнить поиск revere и использует адрес IPv6 в качестве имени хоста. Вот одно из решений: serverfault.com/a/341292

2. Похоже, это не решило мою проблему. Теперь мой журнал:

3. 2020-10-12T15:46:03.697463Z 0 [Примечание] Пропуск генерации SSL-сертификатов, поскольку файлы сертификатов присутствуют в каталоге данных. 2020-10-12T15:46:03.697946Z 0 [Предупреждение] Сертификат CA ca.pem является самозаверяющим. 2020-10-12T15:46:03.697971Z 0 [Примечание] Пропуск генерации пары ключей RSA, поскольку файлы ключей присутствуют в каталоге данных.

4. 2020-10-12T15:46:03.698027Z 0 [Примечание] Имя хоста сервера (адрес привязки): ‘*’; порт: 3306 2020-10-12T15:46:03.698058Z 0 [Примечание] Доступен IPv6. 2020-10-12T15:46: 03.698062Z 0 [Примечание] — ‘::’ разрешается на ‘::’; 2020-10-12T15: 46: 03.698080Z 0 [Примечание] Серверный сокет, созданный на IP: ‘::’. 2020-10-12T15:46: 03.703383Z 0 [Примечание] СобытиеПланировщик: загружено 0 событий 2020-10-12T15:46:03.703502Z 0 [Примечание] /usr/sbin/mysqld: готов к подключениям. Версия: ‘5.7.31-0ubuntu0.18.04.1’ сокет: ‘/ var / run/mysqld / mysqld.sock’ порт: 3306 (Ubuntu)