我有一个问题,我的应用程序,当尝试从php应用程序在cli数据库连接我收到这个错误:
错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld”连接到本地MySQL服务器。袜子(111)
当我运行网站时,我得到:
[2002]连接拒绝(SQL:从会话
中选择*,其中id
=TKks6w5zbHk8bZsm6BEgFyKLJGXj05eyYHQfJsaB限制1)
我用docker compose设置了docker图像。yml和。Dockerfile还提供了带有应用程序的nginx文件夹。conf和mysql文件夹与我的。cnf我会把这些放在这里
version: '3.4'
services:
mariadb:
image: mariadb/server:latest
container_name: db
restart: unless-stopped
tty: true
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: PiApp
MYSQL_ROOT_PASSWORD: rootpass
SERVICE_TAGS: dev
SERVICE_NAME: mysql
volumes:
- dbdata:/var/lib/mysql/
- .\mysql/my.cnf:/etc/mysql/my.cnf
networks:
- Pi-Wallet-Network
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
restart: unless-stopped
environment:
- PMA_HOST=mariadb
links:
- mariadb
networks:
- Pi-Wallet-Network
app:
image: php:7.4-fpm
build:
context: .
dockerfile: ./Dockerfile
environment:
NODE_ENV: production
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- .\:/var/www
- .\php/local.ini:/usr/local/etc/php/conf.d/local.ini
links:
- mariadb
networks:
- Pi-Wallet-Network
webserver:
image: nginx:latest
container_name: webserver
tty: true
ports:
- "80:80"
- "443:443"
volumes:
- .\:/var/www
- .\nginx/conf.d/:/etc/nginx/conf.d/
links:
- mariadb
networks:
- Pi-Wallet-Network
networks:
Pi-Wallet-Network:
driver: bridge
volumes:
dbdata:
driver: local
我的Dockerfile:
FROM php:7.4-fpm
# FROM mariadb/server:latest
# Copy composer.lock and composer.json into the working directory
COPY composer.lock composer.json /var/www/
# Set working directory
WORKDIR /var/www/
# Install dependencies for the operating system software
RUN printf '#!/bin/sh\nexit 0' > /usr/sbin/policy-rc.d
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y mariadb-server
RUN apt-get install -y build-essential
RUN apt-get install -y libpng-dev
RUN apt-get install -y libjpeg-dev
RUN apt-get install -y libjpeg62-turbo-dev
RUN apt-get install -y libfreetype6-dev
RUN apt-get install -y locales
RUN apt-get install -y zip
RUN apt-get install -y jpegoptim optipng pngquant gifsicle
RUN apt-get install -y vim
RUN apt-get install -y libzip-dev
RUN apt-get install -y unzip
RUN apt-get install -y git
RUN apt-get install -y libonig-dev
RUN apt-get install -y curl
# Install extensions for php
RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install gd
# Install composer (php package manager)
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin
filename=composer
# Copy existing application directory contents to the working directory
COPY . /var/www/
# Assign permissions of the working directory to the www-data user
# RUN chown -R www-data:www-data /var/www/*
RUN chown -R www-data:www-data /var/www//storage
# Expose port 9000 and start php-fpm server (for FastCGI Process Manager)
EXPOSE 9000
CMD ["php-fpm"]
我通过将DB_HOST=127.0.0.1更改为DB_HOST=host.docker.internal
就像这个问题
问题内容: 我正在研究将由学校使用的应用程序。每所学校将建立自己的数据库。每个学校都会为应用程序提供自己的“设置”文件。设置文件将包含创建设置文件的特定学校的数据库URL。这样一来,使用该应用程序的学生如果想连接到其他数据库,就只能加载其他设置文件。 我的问题是,如何保护用于连接数据库的用户名和密码?因此,只有应用程序具有对数据库的读写访问权限。应用程序仅具有该特定学校的读写权限吗? 如果您需要更
问题内容: 我正在尝试使用以下脚本连接数据库(cxn-test.php) 当我在终端上尝试时 php cxn-test.php //成功 但是当我尝试在本地主机上时,出现以下错误, curl -s http://localhost/cxn-test.php 这是一个奇怪的问题,它无法在localhost上运行,但在命令行上运行良好。 问题答案: 在获得运行SELinux的新CentOS 7盒后,我
我在PHP8中有Azure web应用程序,希望从php代码连接到Oracle数据库12C。从文档中,我发现下面的博客说我们需要Oracle Instant Client,但我没有找到安装步骤。在这个博客中,他们提到php版本高达5.6,但我使用的是PHP8版本。 https://docs.microsoft.com/en-us/archive/blogs/azureossds/access-or
我已使用WebForms从VS-2019成功发布Azure应用服务。我已成功保护它,以便用户必须使用与应用服务相同域中的Azure AAD帐户登录。我已成功创建AzureSQL数据库。我已成功将AAD域中的用户添加到数据库中,并通过将我创建的Azure AAD帐户用户之一硬编码到连接字符串中,从Azure应用服务中连接到数据库。 现在,我想使用应用程序服务登录名中经过身份验证的AAD用户连接到Az
问题内容: 我正在为我的三年级项目编写应用程序。该应用程序将需要与外部mySQL数据库进行交互。该应用程序将从数据库中检索数据,并在ListView中将其显示给用户。 我对应用程序将要具有的功能有很好的了解。我也花了很多时间使用ListViews和本地SQLite数据库。我还对HttpUrlConnection类做了一些重新研究。 我只是想知道有人能为我提供更多有关如何访问此外部数据库的指导吗?
我想用“OpenOrCreateDatabase”创建一个SQLLite数据库。问题是,我在创建一个新表时出现了一个错误。 这是我的代码: 怎么了? 多谢!