#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)