【发布时间】:2022-01-03 15:29:14
【问题描述】:
我有一个Laravel 8 项目。 Laravel 在 sqlite 上运行,我想将旧的 mariaDB Wordpress 数据库中的数据导入 sqlite。旧的 wordpress 数据库在 docker 容器 中运行。而且我还可以使用 MySQL Workbench 访问数据库。
但不幸的是,我无法创建与 Docker 数据库的连接。我得到以下Illuminate\Database\QueryException:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (SQL: select * from
wp_postswherepost_type= news)
为什么我在这里遗漏了什么?
这是我的相关设置:
docker-compose.yml
docker-compose.yml
version: "3.7"
services:
# ...
#Mysl Service
mysql:
image: mariadb:10.5
container_name: laravel-mysql
volumes:
- db_data:/var/lib/mysql
- ./logs/mysql:/var/log/mysql
- ./dumps/:/home/dumps
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=laravel
- MYSQL_USER=laravel
- MYSQL_PASSWORD=password
ports:
- 3307:3306
networks:
- mynetwork
# ...
volumes:
db_data:
.env
DB_CONNECTION=sqlite
DB_CONNECTION_WP=mysql
DB_HOST_WP=mysql
DB_PORT_WP=3306
DB_DATABASE_WP="wordpress"
DB_USERNAME_WP=root
DB_PASSWORD_WP=password
database.php
'mysql_wp' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL_WP'),
'host' => env('DB_HOST_WP', '127.0.0.1'),
'port' => env('DB_PORT_WP', '3307'),
'database' => env('DB_DATABASE_WP', 'wordpress'),
'username' => env('DB_USERNAME_WP', 'root'),
'password' => env('DB_PASSWORD_WP', 'password'),
'unix_socket' => env('DB_SOCKET_WP', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
],
service/imports/wpNewsImport.php
$data = DB::connection('mysql_wp')
->table('wp_posts')
->where("post_type", "news")
->get();
在此先感谢您,顺便说一句。新年快乐!
【问题讨论】: