Php 与 MySQL 的连接问题(SQL STATE 2002),而连接字符串是正确的
Php Connection issue(SQL STATE 2002) with MySQL while connection string is right
我无法将架构更改从终端推送到 MySQL 数据库。
我总是收到 2002 错误。
我已经安装了MySQL。起来了 运行.
我正在使用 MAMP。
这是我的 .env 文件
# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=f492b5be321d353dbb48352876d4db75
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
#TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ###
###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# For a PostgreSQL database, use: "postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=11&charset=utf8"
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
DATABASE_URL=mysql://sampleUserName:SamplePassword@127.0.0.1:3306/prod_cat?serverVersion=5.7
###< doctrine/doctrine-bundle ###
这是我的doctrine.yaml
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
mapping_types:
enum: string
# unix_socket: /Applications/MAMP/tmp/mysql/mysql.sock
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
# server_version: '5.7'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
为方便起见,下面我提到了 .env 文件中的连接字符串
DATABASE_URL=mysql://sampleUserName:SamplePassword@127.0.0.1:3306/prod_cat?serverVersion=5.7
仅供参考:
Apache & MySQL 已启动并且 运行。
MySQL我说的版本号是对的
用户名密码正确
如果 MySQL 的端口号与 连接字符串 中的内容 不匹配,这可能是一个问题。
通过访问 PhpMyAdmin 中的 MySQL 页面找到 MySQL 的端口号,并在您的连接字符串中使用端口号,或者使用 MySQL 的端口号MySQL 端口设置中的连接字符串。
更改 MySQL 端口。转到 MAMP 中的首选项并选择端口选项卡,您可以在那里更新它。
我无法将架构更改从终端推送到 MySQL 数据库。
我总是收到 2002 错误。
我已经安装了MySQL。起来了 运行.
我正在使用 MAMP。
这是我的 .env 文件
# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=f492b5be321d353dbb48352876d4db75
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
#TRUSTED_HOSTS='^(localhost|example\.com)$'
###< symfony/framework-bundle ###
###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# For a PostgreSQL database, use: "postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=11&charset=utf8"
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
DATABASE_URL=mysql://sampleUserName:SamplePassword@127.0.0.1:3306/prod_cat?serverVersion=5.7
###< doctrine/doctrine-bundle ###
这是我的doctrine.yaml
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
mapping_types:
enum: string
# unix_socket: /Applications/MAMP/tmp/mysql/mysql.sock
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
# server_version: '5.7'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
为方便起见,下面我提到了 .env 文件中的连接字符串
DATABASE_URL=mysql://sampleUserName:SamplePassword@127.0.0.1:3306/prod_cat?serverVersion=5.7
仅供参考:
Apache & MySQL 已启动并且 运行。
MySQL我说的版本号是对的
用户名密码正确
如果 MySQL 的端口号与 连接字符串 中的内容 不匹配,这可能是一个问题。
通过访问 PhpMyAdmin 中的 MySQL 页面找到 MySQL 的端口号,并在您的连接字符串中使用端口号,或者使用 MySQL 的端口号MySQL 端口设置中的连接字符串。
更改 MySQL 端口。转到 MAMP 中的首选项并选择端口选项卡,您可以在那里更新它。