Hướng dẫn php mongodb connect with username and password - php mongodb kết nối với tên người dùng và mật khẩu

Tôi đã cố gắng thử nghiệm với MongoDB và khi tôi chạy tập lệnh để kết nối, điều đó không thể vì mật khẩu sử dụng ký hiệu @.

Để kết nối với MongoDB

mongodb://username:password@localhost

Nhưng vì mật khẩu của tôi để kết nối với MongoDB sử dụng biểu tượng @, nó không thể kết nối do ký hiệu @.

Ví dụ;

new MongoClient("mongodb://mongo:p@assword@localhost);

Sẽ ném lỗi sau;


   // PHP version 7.4 used here
    try {
        // connect to OVHcloud Public Cloud Databases for MongoDB (cluster in version 4.4, MongoDB PHP Extension in 1.8.1)
        $m = new MongoDB\Driver\Manager('mongodb+srv://:@mongodb-e49d02ee-o2626ab53.database.cloud.ovh.net/admin?replicaSet=replicaset');
        echo "Connection to database successfully";
        // display the content of the driver, for diagnosis purpose
        var_dump($m);
    }
    catch (Throwable $e) {
        // catch throwables when the connection is not a success
        echo "Captured Throwable for connection : " . $e->getMessage() . PHP_EOL;
    }
?>
0

Như bạn có thể thấy, nó nghĩ rằng @ đầu tiên trong mật khẩu là trình phân tách mật khẩu và máy chủ.

Có cách nào để kết nối và cho phép biểu tượng @ trong mật khẩu khi sử dụng Mongoclient không?

Đã hỏi ngày 13 tháng 1 năm 2014 lúc 15:17Jan 13, 2014 at 15:17

Hướng dẫn php mongodb connect with username and password - php mongodb kết nối với tên người dùng và mật khẩu

ʰᵈˑʰᵈˑʰᵈˑ

11.1k2 Huy hiệu vàng22 Huy hiệu bạc47 Huy hiệu đồng2 gold badges22 silver badges47 bronze badges

Bạn có thể thử bằng mã này. Chỉ cần chuyển đầu vào của bạn theo giá trị động.

try {
            $m = new MongoClient("mongodb://HOST:" . MNG_PORT, array(
                "username" => MNG_USER,
                "password" => MNG_PWD
            )); // connect local Mongo
            $db = $m->selectDB("DBNAME"); // select DB
            $collection = $db->collections; // connect to collection
        } catch ( MongoConnectionException $e ) {
            echo 'Couldn\'t connect to mongodb, is the "mongo" process running?';
            exit();
        }

Đã trả lời ngày 24 tháng 8 năm 2017 lúc 9:26Aug 24, 2017 at 9:26

Hướng dẫn php mongodb connect with username and password - php mongodb kết nối với tên người dùng và mật khẩu

Cập nhật lần cuối ngày 27 tháng 7 năm 2022

Khách quan

Cơ sở dữ liệu đám mây công cộng cho phép bạn tập trung vào việc xây dựng và triển khai các ứng dụng đám mây trong khi OVHCLOUD chăm sóc cơ sở hạ tầng cơ sở dữ liệu và bảo trì trong điều kiện hoạt động.

Hướng dẫn này giải thích cách kết nối với thể hiện cơ sở dữ liệu MongoDB với một trong những ngôn ngữ lập trình nổi tiếng nhất thế giới: PHP.

Bạn có thể tìm thấy một ví dụ trên kho lưu trữ ví dụ GitHub.

Yêu cầu

  • Một dự án đám mây công cộng trong tài khoản Ovhcloud của bạn
  • Truy cập vào bảng điều khiển Ovhcloud
  • Cơ sở dữ liệu MongoDB đang chạy trên cơ sở dữ liệu đám mây công cộng OVHCLOUD của bạn (hướng dẫn này có thể giúp bạn đáp ứng yêu cầu này)
  • Định cấu hình phiên bản MongoDB của bạn để chấp nhận các kết nối đến
  • Môi trường PHP với phiên bản ổn định và kết nối mạng công cộng (Internet). Hướng dẫn này đã được thực hiện trong Php 7.4.

Ý tưởng

Một ví dụ MongoDB có thể được quản lý thông qua nhiều cách. Một trong những thứ dễ nhất, nhưng mạnh mẽ nhất là sử dụng giao diện dòng lệnh (CLI), như được hiển thị trong hướng dẫn của chúng tôi: Kết nối với MongoDB với CLI.

Một cách khác là tương tác trực tiếp bằng các ngôn ngữ lập trình, chẳng hạn như PHP. PHP được sử dụng trong gần 80% các trang web trên thế giới, chẳng hạn như Facebook, Wikipedia hoặc WordPress. MongoDB cung cấp trình điều khiển PHP, cho phép chúng tôi kết nối và quản lý một thể hiện MongoDB từ mã.

Để làm như vậy, chúng tôi sẽ cần thiết lập môi trường PHP của chúng tôi với các trình điều khiển MongoDB, sau đó định cấu hình cơ sở dữ liệu đám mây công khai của chúng tôi để các trường hợp MongoDB chấp nhận các kết nối đến và cuối cùng mã trong PHP để thực hiện một vài hành động ví dụ.

Hướng dẫn

Thiết lập môi trường PHP của bạn

Để tương tác với thể hiện MongoDB của bạn với PHP, môi trường phát triển của bạn cần được cấu hình với:

  • Một phiên bản tương thích của PHP;
  • Phần mở rộng php mongoDB;
  • Được khuyến nghị mạnh mẽ: Thư viện PHP MongoDB.

Vui lòng theo dõi tài liệu MongoDB chính thức cho trình điều khiển PHP để có được thông tin mới nhất.

Ở cuối trang tài liệu, bạn sẽ tìm thấy một ma trận tương thích giữa các phiên bản PHP, phần mở rộng MongoDB và phiên bản thư viện. Thực hiện theo điều này cho phù hợp.compatibility matrix between PHP versions, MongoDB extensions and library versions. Follow this accordingly.

Nếu bạn có thể tự chỉnh sửa môi trường PHP của mình, hãy cài đặt các tiện ích mở rộng và thư viện như được nêu chi tiết trong trang tài liệu này được liên kết ở trên.

Ngược lại, nếu bạn được hưởng lợi từ giải pháp lưu trữ web được quản lý, chẳng hạn như các ưu đãi lưu trữ web của OVHCLOUD, bạn cần kích hoạt phiên bản PHP phù hợp trên gói lưu trữ web của bạn. Bạn có thể tìm thấy một hướng dẫn về việc sửa đổi phiên bản PHP của bạn cho lưu trữ web của OVHCLOUD tại đây.OVHcloud Web Hosting offers, you need to activate the right PHP version on your web hosting plan. You can find a guide about modifying your PHP version for OVHcloud Web Hosting here.

Trong cả hai trường hợp, khi thực hiện phpinfo () trong môi trường PHP của bạn, bạn sẽ thấy thông tin về trình điều khiển MongoDB như được hiển thị bên dưới:phpinfo() in your PHP environment, you should see information about the MongoDB driver as shown below :

Hướng dẫn php mongodb connect with username and password - php mongodb kết nối với tên người dùng và mật khẩu

Bây giờ chúng tôi sẽ theo dõi tài liệu MongoDB chính thức để thực hiện kết nối đầu tiên với PHP.

Kết nối với PHP

Trong môi trường PHP của bạn, hãy thử kết nối. Để chắc chắn rằng chúng tôi thực sự được kết nối, chúng tôi sẽ đổ tất cả các thông tin thể hiện MongoDB.

Như được hiển thị trong mã, chúng tôi sử dụng MongoDB \ Driver \ Manager. Sử dụng tài liệu PHP chính thức để tài liệu đầy đủ: https://www.php.net/manual/en/set.mongodb.php.MongoDB\Driver\Manager. Use the official PHP documentation for exhaustive documentation : https://www.php.net/manual/en/set.mongodb.php.


   // PHP version 7.4 used here
    try {
        // connect to OVHcloud Public Cloud Databases for MongoDB (cluster in version 4.4, MongoDB PHP Extension in 1.8.1)
        $m = new MongoDB\Driver\Manager('mongodb+srv://:@mongodb-e49d02ee-o2626ab53.database.cloud.ovh.net/admin?replicaSet=replicaset');
        echo "Connection to database successfully";
        // display the content of the driver, for diagnosis purpose
        var_dump($m);
    }
    catch (Throwable $e) {
        // catch throwables when the connection is not a success
        echo "Captured Throwable for connection : " . $e->getMessage() . PHP_EOL;
    }
?>

Nếu bạn được kết nối, kết quả của var_dump ($ m) sẽ như thế này:var_dump($m) should be like this :

Object(MongoDB\Driver\Manager)#1 (2) {
  ["uri"]=>
  string(100) "mongodb+srv://:@mongodb-e49d02ee-o2626ab53.database.cloud.ovh.net/admin?replicaSet=replicaset"
  ["cluster"]=>
  array(1) {
    [0]=>
    array(10) {
      ["host"]=>
      string(45) "node1-e49d02ee-o2626ab53.database.cloud.ovh.net"
      ["port"]=>
      int(27017)
      ["type"]=>
      int(4)
      ["is_primary"]=>
      bool(true)
      ["is_secondary"]=>
      bool(false)

(more data, cut for the example)

    }
  }
}

Nếu var_dump ($ m) trống, bạn sẽ phải phân tích môi trường PHP và ma trận tương thích MongoDB của mình được liên kết trước đó và Strickables:var_dump($m) is empty, you will have to analyze your PHP Environment and MongoDB compatibility matrix linked previously, and throwables :

  • Thời gian chờ kết nối: Thường là do ủy quyền IP không chính xác.
  • Không gian tên không hợp lệ: URI dịch vụ bạn đã nhập có thể có một lỗi đánh máy bên trong.

Sau khi kết nối, bạn có thể thực hiện nhiều thao tác, ví dụ: chèn số lượng lớn và tìm () bên trong bộ sưu tập:find() inside a collection :


    try {
        // Bulk write inserts
        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->insert(['mydata' => 'alice']);
        $bulk->insert(['mydata' => 'bob']);
        $bulk->insert(['mydata' => 'bastien']);
        $m->executeBulkWrite('mydb.mycol', $bulk);

        $filter = ['mydata' => 'bob'];
        $options = [];

        // Query to find inserts in a specific collection
        $query = new MongoDB\Driver\Query($filter, $options);
        $cursor = $m->executeQuery('mydb.mycol', $query);

        foreach ($cursor as $document) {
            var_dump($document);
        }
    }
    catch (Throwable $e) {
        echo "Captured Throwable: for insert : " . $e->getMessage() . PHP_EOL;
    }
?>

Trong ví dụ này, chúng tôi chèn 3 đối tượng bên trong một bộ sưu tập có tên mycol, sau đó chúng tôi thực hiện các hoạt động tìm () trong bộ sưu tập này, tìm kiếm tất cả các đối tượng chứa "Bob".mycol, then we do a find() operations in this collection, looking for all the objects containing "bob".

Kết quả ở đây là cho VAR_DUMP ($ tài liệu):var_dump($document) :

object(stdClass)#6 (2) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#7 (1) {
    ["oid"]=>
    string(24) "6139d5163d84c01fa93e2e53"
  }
  ["mydata"]=>
  string(3) "bob"
}

Mã này chính xác tìm thấy một đối tượng chứa Bob. Điều đó có nghĩa là ở đây chúng tôi có thể kết nối với thể hiện MongoDB, chèn dữ liệu và tìm dữ liệu này. Xin chúc mừng! Mọi thứ đang hoạt động bình thường.bob. It means that here we were able to connect to the MongoDB instance, insert data, and look for this data. Congratulations! Everything is working properly.

Khung và công cụ PHP cho MongoDB

Mã hóa trong PHP từ đầu để tương tác với một ví dụ MongoDB có thể rất thú vị và rất mang tính hướng dẫn. Nếu bạn quan tâm, bạn cũng có thể xem danh sách PHP MongoDB cho các thư viện, khung và công cụ. Họ thực sự có thể giúp công việc của bạn với PHP.

Đi xa hơn

Khả năng MongoDB

Định cấu hình Vrack cho đám mây công cộng

Truy cập kênh Discord chuyên dụng của chúng tôi: https://discord.gg/pwpqwupn8g. Đặt câu hỏi, cung cấp phản hồi và tương tác trực tiếp với nhóm xây dựng các dịch vụ cơ sở dữ liệu của chúng tôi.

Tham gia cộng đồng người dùng của chúng tôi trên https://community.ovh.com/en/.


Bạn có thấy hướng dẫn này hữu ích không?

Xin vui lòng đưa ra bất kỳ đề xuất nào để cải thiện tài liệu này.

Cho dù phản hồi của bạn là về hình ảnh, nội dung hoặc cấu trúc, vui lòng chia sẻ nó, để chúng tôi có thể cải thiện nó cùng nhau.

Yêu cầu hỗ trợ của bạn sẽ không được xử lý thông qua biểu mẫu này. Để làm điều này, xin vui lòng sử dụng biểu mẫu "Tạo vé".

Cảm ơn bạn. Phản hồi của bạn đã được nhận.


Những hướng dẫn này cũng có thể khiến bạn quan tâm ...

Tôi có thể kết nối PHP với MongoDB không?

Bạn có thể thêm trình điều khiển vào ứng dụng của bạn để làm việc với MongoDB trong PHP. Trình điều khiển PHP MongoDB bao gồm hai thành phần sau: phần mở rộng, cung cấp API cấp thấp và chủ yếu phục vụ để tích hợp libmongoc và libbson với PHP.. The MongoDB PHP Driver consists of the two following components: The extension , which provides a low-level API and mainly serves to integrate libmongoc and libbson with PHP.

Làm thế nào cấu hình MongoDB trong PHP?

Cài đặt Thư viện PHP MongoDB..
Nhà soạn nhạc $ yêu cầu MongoDB/MongoDB ..
Sử dụng phiên bản ^1.8 cho MongoDB/MongoDB ..
./ Nhà soạn nhạc.....
Chạy Cập nhật nhà soạn nhạc MongoDB/MongoDB ..
Tải kho lưu trữ của nhà soạn nhạc với thông tin gói ..
Cập nhật phụ thuộc ..
Các hoạt động tập tin khóa: 4 Cài đặt, 0 Cập nhật, 0 Xóa ..
Viết tập tin khóa ..

Làm thế nào cho phép MongoDB trong PHP INI?

Cài đặt thủ công sau khi thực hiện các lệnh trước đó, bạn phải thực hiện thay đổi trong PHP của mình.Tệp INI.Mở tệp trong Trình chỉnh sửa văn bản yêu thích của bạn và biến mở rộng_dir đang trỏ đến vị trí của Mongo.so.Ngoài ra, thêm 'Extension = Mongo.so' trong một tệp, lưu và khởi động lại máy chủ web của bạn.Open the file in your favorite text editor and extension_dir variable is pointing to the location of mongo.so. Also, add 'extension=mongo.so' in a file, save and restart your web server.

Làm cách nào để kết nối với khách hàng MongoDB?

Làm thế nào để kết nối với MongoDB..
Tạo cơ sở dữ liệu trên MongoDB.Kết nối với vỏ MongoDB.Tạo cơ sở dữ liệu "TestDB".Tạo bộ sưu tập "người dùng" và chèn nó vào "TestDB" ..
Thiết lập người dùng.Kết nối với quản trị viên DB.Tạo quản trị viên người dùng.....
Tạo kết nối với MongoDB trên CPD.Đặt thông tin cần thiết ..