السلام عليكم، قمت بتثبيت نظام Wordpress على شكل حاوية منفصلة عن قواعد البيانات MariaDB والتي هي عبارة عن حاوية أخرى مستقلة.
هذا ملف docker-compose الخاص بـ MariaDB
version: "3"
services:
mariadb:
image: mariadb
container_name: mariadb
environment:
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
volumes:
- ./data:/var/lib/mysql
ports:
- "127.0.0.1:3306:3306"
restart: unless-stopped
networks:
- web
networks:
web:
external: true
وهذا ملف وردبرس:
version: '3'
services:
# Wordpress
myWordpress:
image: wordpress:php8.1
container_name: myWordpress
hostname: myWordpress
restart: unless-stopped
volumes: [ './data:/var/www/html' ]
environment:
- WORDPRESS_DB_HOST=mariadb
- WORDPRESS_DB_USER="${WORDPRESS_DB_USER}"
- WORDPRESS_DB_PASSWORD="${WORDPRESS_DB_PASSWORD}"
- WORDPRESS_DB_NAME="${WORDPRESS_DB_NAME}"
networks:
- web
networks:
web:
external: true
قمت مسبقا بإنشاء الشبكة web ، كما قمت بإنشاء قاعدة بيانات ومستخدم جديد خاص بالوردبرس ، وأعطيته الصلاحيات اللازمة عن طريق الأمر
GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'%';
ثم قمت باستخدام طرفية MariaDB للتأكد من صحة البيانات.
docker exec -it mariadb bash
mysql -u wp_user -pMyPassword
# Welcome to the MariaDB monitor. Commands end with ; or \g.
# ...
لكن عند زيارة الموقع ، يظهر هذا الخطأ:
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user '"wp_user"'@'172.16.32.5' (using password: YES) in /var/www/html/wp-includes/wp-db.php on line 1753
Access denied for user '"wp_user"'@'172.16.32.5' (using password: YES)
لدي شعور بأن المشكلة تكمن في الجزء الخاص باسم المضيف الخاص بقواعد البيانات (داخل ملف docker-compose الخاص بوردبرس) ، فأنا أستخدم mariadb ، لكن أيضا جربت استخدام localhost بما أن الحاويتين تشتركان في نفس الشبكة web لكن هذا لم يعمل أيضا، وتظهر نفس رسالة الخطأ!