ben*_*a16 1 mysql laravel docker laravel-sail
我正在尝试将 Laravel 8 项目从 Homestead 迁移到 Sail。Sail 似乎设置正确,因为我可以在本地访问我的项目网站。但我无法进入 mysql 来查看数据库:
\n\xe2\x9e\x9c myproject git:(master) \xe2\x9c\x97 sail mysql\nERROR 1045 (28000): Access denied for user 'myproject'@'localhost' (using password: YES)\nRun Code Online (Sandbox Code Playgroud)\n我尝试过重新启动 Docker,并重新启动终端并运行,sail build --no-cache && sail up但没有成功。
这是我的文件的相关部分.env:
DB_CONNECTION=mysql\nDB_HOST=localhost\nDB_PORT=3306\nDB_DATABASE=myproject\nDB_USERNAME=myproject\nDB_PASSWORD=secret\nRun Code Online (Sandbox Code Playgroud)\n这是docker-compose.yml文件:
# For more information: https://laravel.com/docs/sail\nversion: '3'\nservices:\n laravel.test:\n build:\n context: ./vendor/laravel/sail/runtimes/8.1\n dockerfile: Dockerfile\n args:\n WWWGROUP: '${WWWGROUP}'\n image: sail-8.1/app\n extra_hosts:\n - 'host.docker.internal:host-gateway'\n ports:\n - '${APP_PORT:-80}:80'\n - '${HMR_PORT:-8080}:8080'\n environment:\n WWWUSER: '${WWWUSER}'\n LARAVEL_SAIL: 1\n XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'\n XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'\n volumes:\n - '.:/var/www/html'\n networks:\n - sail\n depends_on:\n - mysql\n mysql:\n image: 'mysql/mysql-server:8.0'\n ports:\n - '${FORWARD_DB_PORT:-3306}:3306'\n environment:\n MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'\n MYSQL_ROOT_HOST: "%"\n MYSQL_DATABASE: '${DB_DATABASE}'\n MYSQL_USER: '${DB_USERNAME}'\n MYSQL_PASSWORD: '${DB_PASSWORD}'\n MYSQL_ALLOW_EMPTY_PASSWORD: 1\n volumes:\n - 'sail-mysql:/var/lib/mysql'\n - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'\n networks:\n - sail\n healthcheck:\n test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]\n retries: 3\n timeout: 5s\nnetworks:\n sail:\n driver: bridge\nvolumes:\n sail-mysql:\n driver: local\nRun Code Online (Sandbox Code Playgroud)\n编辑:\n当我将 .env 更改为
\nDB_CONNECTION=mysql\nDB_HOST=mysql\nDB_PORT=3306\nDB_DATABASE=myproject\nDB_USERNAME=sail\nDB_PASSWORD=password\nRun Code Online (Sandbox Code Playgroud)\n那么错误是
\n\xe2\x9e\x9c myproject git:(master) \xe2\x9c\x97 sail mysql\nERROR 1044 (42000): Access denied for user 'sail'@'%' to database 'myproject'\nRun Code Online (Sandbox Code Playgroud)\n
我刚刚尝试连接到一个新的 laravel 9 应用程序,我认为您只需要更改几行即可连接到 Sail 的 Mysql:
DB_CONNECTION=mysql
DB_HOST=host.docker.internal
DB_PORT=3306
DB_DATABASE=myproject
DB_USERNAME=sail # <-- "sail" as default user name
DB_PASSWORD=password # <-- "password" as default password
Run Code Online (Sandbox Code Playgroud)
这是必需的,因为“mysql”是sail 用于与数据库交互的docker 容器中数据库部分的实例的名称。
所有其他设置仍然相同。
然后像之前一样sail build --no-cache && sail up。
| 归档时间: |
|
| 查看次数: |
4334 次 |
| 最近记录: |