问下laravel如何用ca.pem证书连接mysql数据库
情况是这样的,我的php是7.4,然后mysql8.4.7,laravel 8.83.然后客户给了一个ca证书,然后我这样是能获取数据库里面数据的:
我创建一个文件如test.php:
<?php
$host = '10.236.82.98';
$port = 33062;
$dbname = 'fss';
$username = 'FOOD_SAFETY_DB_T';
$password = 'B4t^wE6yH1pZ8oF&';
$ssl_ca = '/home/www/food/backend/ca.pem';
$dsn = "mysql:host=$host;port=$port;dbname=$dbname;charset=utf8mb4";
$options = [
PDO::MYSQL_ATTR_SSL_CA => $ssl_ca,
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
echo "连接成功!\n";
// 检查SSL状态
$stmt = $pdo->query("SHOW STATUS LIKE 'Ssl_cipher'");
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if (!empty($result['Value'])) {
echo "sslsuccess " . $result['Value'] . "\n";
} else {
echo "weishissl。\n";
}
$sql = "select * from demo where id= 1";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$data = $stmt->fetch(PDO::FETCH_ASSOC);
if ($data) {
foreach($data as $key=>$value) {
echo $key .":".$value."\n";
}
} else {
echo 'weichadao';
}
} catch (PDOException $e) {
echo "shibai: " . $e->getMessage() . "\n";
}
然后这样php test.php 就能连接成功,并且查询到数据:

然后我用laravel,就报2002错误:

我配置了这样的:


关于 LearnKu
推荐文章: