我试图在Docker建立Laravel项目。我的码头工人。yml:
version: "2"
services:
web:
build:
context: .
dockerfile: Dockerfile
environment:
- MYSQL_DATABASE=identy
- MYSQL_USER=root
- MYSQL_PASSWORD=654321
- MYSQL_HOST=db
ports:
- "8080:80"
volumes:
- .:/var/www
depends_on:
- db
networks:
- identy-network
db:
image: mysql:8.0
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=654321
- MYSQL_USER=root
- MYSQL_PASSWORD=654321
- MYSQL_DATABASE=identy
volumes:
- "mysql_data:/var/lib/mysql"
- ./data/schema.sql:/docker-entrypoint-initdb.d/schema.sql
networks:
- identy-network
volumes:
mysql_data:
driver: local
networks:
identy-network:
我的Dockerfile:
FROM php:7.4-apache
RUN apt-get update \
&& apt-get install -y vim git zlib1g-dev mariadb-client libzip-dev \
&& docker-php-ext-install zip mysqli pdo_mysql \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& echo 'xdebug.remote_enable=on' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo 'xdebug.remote_host=host.docker.internal' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo 'xdebug.remote_port=9000' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& a2enmod rewrite \
&& sed -i 's!/var/www/html!/var/www/public!g' /etc/apache2/sites-available/000-default.conf \
&& mv /var/www/html /var/www/public \
&& curl -sS https://getcomposer.org/installer \
| php -- --install-dir=/usr/local/bin --filename=composer \
&& echo "AllowEncodedSlashes On" >> /etc/apache2/apache2.conf
WORKDIR /var/www
. env:
...
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=identy
DB_USERNAME=root
DB_PASSWORD=654321
...
当我运行docker exec identy-api_web_1php artisan迁移我得到错误:**照明\数据库\QueryExc0019
SQLSTATE[HY000][1045]拒绝访问用户'root'@'192.168.144.3'(使用密码:YES)(SQL:选择*从information_schema.tables其中table_schema=IDTY和table_name=迁移和table_type='BASE TABLE')***
我不知道为什么它不起作用。
您不需要定义MYSQL_USER=root
。试试这个(它也会创建identidb):
db:
image: mysql:8.0
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=654321
networks:
- identy-network
volumes:
- "mysql_data:/var/lib/mysql"
entrypoint: sh -c "
echo 'CREATE DATABASE IF NOT EXISTS identy;' > /docker-entrypoint-initdb.d/init.sql;
/usr/local/bin/docker-entrypoint.sh --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci"
我认为您应该删除卷数据,然后再试一次。
我认为,你没有权限访问数据库从远程主机上的mysql服务器。您需要允许从mysql服务器上的任何主机远程访问root。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.144.3' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
伙计们,我有共同的问题。我想用PHP将MySQL数据库中的数据显示到HTML页面中。 使用此代码: 但我有
问题内容: 我正在尝试从数据库中获取记录。但我正面临拒绝访问的问题。我尝试了在堆栈溢出中提到的其他解决方案,例如向用户授予特权。 访问数据库的代码: 错误的堆栈跟踪: 在这种情况下可能是什么问题。我尝试创建一个新的数据库,但是也没有用。 问题答案: 问题是授予表根用户的权限。’root’@’%’没有任何权限。.就像我以前用作连接地址一样,因此它给出了拒绝访问错误.. 是IP地址的通配符。所以mys
这是我的代码: 对于dbServername,我尝试过使用localhost、localhost:8080、localhost:3306和127.0.0.1,但只有127.0.0.1和localhost:3306似乎通过了测试,并给出了可能的错误。我在localhost(没有这样的文件或目录*)和localhost:8080(MySQL已经消失)中遇到了不同的错误。 因此,考虑到IP as dbS
在Ubuntu中使用MySQL我做了以下步骤: 我收到一个错误: 拒绝用户“root”@"localhost“的访问(使用密码:YES)
为了上学,我必须使用PHP和MySQL建立和基本的网站。网站的功能是允许用户注册,然后登录和退出。为了做到这一点,因为我没有PHP的先验知识,我试图遵循这个教程。我得到了戈达迪的服务器空间,并使用MySQL创建了一个名为details_db的数据库。我创建了教程告诉我的文件并上传到服务器。现在,当我进入网站时,我得到了这些错误。 警告:mysql_connect():拒绝访问用户'root'@'l
我正在尝试从Spring启动连接MySQL db,但我收到此错误为: 我的application.properties档案看起来像 用户名“root”和密码“root”正确,因为我可以从命令行登录到root。我已经尝试了java.sql中的所有方法。SQLException:用户“root”@“ocalhost”的访问被拒绝(使用密码:YES)