Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP MySql से कनेक्ट होने पर ssl प्रमाणपत्रों पर ध्यान नहीं देता

पहली नज़र में, आपने MYSQLI_CLIENT_SSL सेट नहीं किया था कनेक्शन का विकल्प।

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db', null, MYSQLI_CLIENT_SSL)) { ... }

अपडेट करें:
आप $mysqli->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $mysqli->ssl_set() . से पहले ।

साथ ही, यह मेरे लिए काम करता है:

<?php
$pdo = new PDO('mysql:host=ip;dbname=dbname', 'username', 'password', array(
    PDO::MYSQL_ATTR_SSL_KEY    =>'/etc/mysql/ssl/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/ssl/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA    =>'/etc/mysql/ssl/ca-cert.pem'
    )
);
$stmt = $pdo->query("SHOW TABLES;");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($row);
?>

अपडेट 2: आपको एक bad handshake प्राप्त हो सकता है अगर आप पुराने स्टाइल के mysql पासवर्ड का इस्तेमाल करते हैं (16 बाइट लंबा ) जाँच करने के लिए, निम्न क्वेरी चलाएँ:

mysql> select length(Password) from mysql.user where User='youruser'

अगर आपको 16 मिलता है :

// disable old_passwords:
mysql> SET @@session.old_passwords = 0;

// update password for user used in PHP script:
mysql> SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('existingpass');

// check if we have a 41 bytes long password:
mysql> select length(Password) from mysql.user where User='youruser'

और फिर से PHP स्क्रिप्ट से कनेक्शन की जाँच करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql में सिंक्रनाइज़ संग्रहीत कार्यविधि निष्पादन

  2. क्या php और mysql का उपयोग करके csv फ़ाइल बनाते समय कोई फ़ाइल आकार सीमा है?

  3. MySQL पूर्ण शामिल हों?

  4. MYSQL डेटाबेस में यादृच्छिक वर्ण सम्मिलित करना

  5. क्या आपको उनके बचने के लिए तैयार बयानों का उपयोग करना चाहिए?