我目前正在学习在windows上使用docker,我正在学习这个教程。对于docker设置,我使用的是laradock。我正在尝试运行mysql apache2 rabbitmq和phpmyadmin容器,我所做的一切都与视频中的相同,但当我尝试迁移表时,出现以下错误:
illuminate\database\queryexception:拒绝用户'root'@'172.19.0.4'的sqlstate[hy000][1045]访问(使用密码:yes)
我在phpmyadmin中创建了空数据库。
一切都在我的projects.env和laradock/.env中配置
我的项目环境:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=my_database_name
DB_USERNAME=root
DB_PASSWORD=*********
我仔细检查了我的密码,它是正确的。
我的laradock/.env配置:
MYSQL_VERSION=latest
MYSQL_DATABASE=my_database_name
MYSQL_USER=root
MYSQL_PASSWORD=******
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=******
docker-compose.yml配置:
mysql:
build:
context: ./mysql
args:
- MYSQL_VERSION=${MYSQL_VERSION}
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${WORKSPACE_TIMEZONE}
volumes:
- ${DATA_PATH_HOST}/mysql:/var/lib/mysql
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports:
- "${MYSQL_PORT}:3306"
networks:
- backend
为了确保我的所有容器都正常工作,我输入此命令并得到以下响应:
docker-compose ps
上一个命令的响应
我的phpmyadmin中的根用户:
形象
5条答案
按热度按时间blpfk2vs1#
其实你不能创造
root
docker中的用户.env
文件。默认情况下会创建根用户,如果要使用它,只需为其设置密码:MYSQL_ROOT_PASSWORD
在拉拉多克。如果要创建另一个用户,请设置MYSQL_USER
以及MYSQL_PASSWORD
所以在laradock/.env文件中:现在你可以用
root
用户或myusername
laravel项目中的用户:记住,要连接到laradock中正确的数据库主机,应该使用
mysql
而不是localhost or 127.0.0.1
在拉威尔:2ledvvac2#
可能与
bind-address
只接受本地主机连接。查看这个示例,了解如何在mysql容器中使用自定义mysqld.conf8hhllhi23#
这对我有好处:
pobjuy324#
如果您使用laradock,那么一切都将在laradock/mariadb/docker-entrypoint-initdb.d/createdb.sql.example中解释
您必须删除文件夹$data\u path\u host/mariadb,并在/docker-entrypoint-initdb.d/myscript.sql中创建新用户
例子:
kyvafyod5#
通过将my.env mysql用户名和密码配置更改为:
并将laradock/.env配置中的mysql版本更改为:
之后,我停止了所有容器:
下一步是使用新配置构建mysql容器:
在那之后,我又把所有的集装箱都跑了一遍
导航到工作区工作目录并迁移了我的表:
一切如期而至:
已成功创建迁移表。
迁移:2018\u 11\u 28\u 114446\u创建\u帐户\u表
迁移:2018\ 11\ 28\ 114446\创建\账户\表