我正在努力将Laravel应用程序与MYSQL数据库连接。我可以通过MySQL Workbench以及PDO连接自定义字符串连接到数据库,但是使用Laravel无法连接。不知道出什么问题了。
自定义连接字符串:它的工作文件位于laravel应用程序内。我把它只是为了检查
$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "BaltimoreCyberTrustRoot.crt.pem", NULL, NULL) ;
mysqli_real_connect($conn, 'sever.host', 'server-username', 'server-password', 'database', 3306, MYSQLI_CLIENT_SSL);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}
else{
echo "Connected";
}
然后我在下面的.env文件中添加了文件,除了定义了用户名密码主机和数据库名称。 BaltimoreCyberTrustRoot.crt.pem文件与.env文件位于同一路径上
MYSQL_SSL_KEY=BaltimoreCyberTrustRoot.crt.pem
MYSQL_SSL_CERT=BaltimoreCyberTrustRoot.crt.pem
MYSQL_SSL_CA=BaltimoreCyberTrustRoot.crt.pem
MYSQL_SSL_CIPHER=BaltimoreCyberTrustRoot.crt.pem
MYSQL_SSL=true
在config / database.php中看起来像这样
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'options' => (env('MYSQL_SSL')) ? [
PDO::MYSQL_ATTR_SSL_KEY => env('MYSQL_SSL_KEY'), // /path/to/key.pem
PDO::MYSQL_ATTR_SSL_CERT => env('MYSQL_SSL_CERT'), // /path/to/cert.pem
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_SSL_CA'), // /path/to/ca.pem
PDO::MYSQL_ATTR_SSL_CIPHER => env('MYSQL_SSL_CIPHER')
] : [],
不知道出什么问题了吗?
我得到这些错误:
“错误”:“ SQLSTATE [HY000] [2002]试图以其访问权限禁止的方式访问套接字。
[{“ file”:“ D:\ home \ site \ wwwroot \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection.php”,“ line”:624,“ function”:“ runQueryCallback”,“ class” :“ Illuminate \ Database \ Connection”,“类型”:“->”,“ args”:[“从* backend_token
限制1选择*”,[],{}]},