Задался целью запустить сайт, когда MySQL будет лежать в Docker-контейнере.
Имеется:
Докер-контейнер:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38890df7ee0b mysql/mysql-server:5.7 "/entrypoint.sh mysq…" 13 hours ago Up 13 hours (healthy) 33060/tcp, 127.0.0.1:3310->3306/tcp mysql
Проблема в том, что CMS не видит его как localhost. (см.скриншот)
1635 строка:
mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
Все привилегии выданы.
mysql> show grants for 'mto'@'localhost';
+------------------------------------------------------+
| Grants for mto@localhost |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'mto'@'localhost' |
| GRANT ALL PRIVILEGES ON `mto`.* TO 'mto'@'localhost' |
+------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> show grants for 'mto'@'%';
+----------------------------------------------+
| Grants for mto@% |
+----------------------------------------------+
| GRANT USAGE ON *.* TO 'mto'@'%' |
| GRANT ALL PRIVILEGES ON `mto`.* TO 'mto'@'%' |
+----------------------------------------------+
2 rows in set (0.00 sec)
При этом если подключаться так, все ок:
mysql -umto -h127.0.0.1 -P3310 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
А если не указывать явно порт, подключение не проходит
mysql -umto -h127.0.0.1:3310 -p
Enter password:
ERROR 2005 (HY000): Unknown MySQL server host '127.0.0.1:3310' (2)
Подскажите, как это дело подружить?
Намеренно хочу, чтобы в докере была только MYSQL, закинуть все в контейнеры не предлагать.