Laravel无法连接到Azure MySQL

时间:2018-03-12 04:46:15

标签: mysql laravel azure laravel-5 azure-sql-database

我正在开发一个必须连接到Azure MySql服务器的Laravel产品。我在.env文件中有以下配置:

  

/。ENV

DB_CONNECTION=mysql
DB_HOST=hostname.mysql.database.azure.com
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=username@hostname
DB_PASSWORD=1234567890

但Laravel无法正确连接到MySQL,并提出此错误

SQLSTATE[HY000] [1045] Access denied for user 'username'@'123.123.123.123' (using password: YES) (SQL: select * from `users`) 

似乎Laravel已将hostname替换为username中的服务器ip。如何使Laravel不能正确地将hostnameconnect替换为Azure MySQL。

2 个答案:

答案 0 :(得分:1)

Azure默认情况下需要SSL连接。您可以在Azure中将其关闭或使用:

'options'   => array(
                \PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
                \PDO::MYSQL_ATTR_SSL_KEY => '/certs/client-key.pem',
                \PDO::MYSQL_ATTR_SSL_CERT => '/certs/client-cert.pem',
                \PDO::MYSQL_ATTR_SSL_CA => '/certs/ca.pem',
            ),

答案 1 :(得分:0)

问题可能与MySQL服务器本身的用户权限有关。您可以尝试使用username @ %(具有任何主机名的用户名)来创建新的MySQL用户。

E.g。

CREATE USER 'newuser'@'%' IDENTIFIED BY 'some-password';
GRANT ALL PRIVILEGES ON your_database . * TO 'newuser'@'%';
FLUSH PRIVILEGES;

然后使用新的用户名和密码更新您的Laravel .env文件。