File cấu hình kết nối cơ sở dữ liệu của một số mã nguồn phổ biến

Một ngày nắng như đổ lửa ở TP.HCM mình nhận job chuyển dữ liệu một website sang nhà cung cấp hosting mới. Bắt tay vào việc thì thấy website đó dùng Yii2 Framework – cũng là một mã nguồn mở nhưng mình lại chưa dùng bao giờ 🙂 .

Mò lên mạng tìm kiếm, loay hoay một buổi thì cũng tìm ra file cấu hình kết nối cơ sở dữ liệu nằm ở đâu.

Tùy vào từng mã nguồn mà file cấu hình cơ sở dữ liệu sẽ khác nhau. Sau đây là các file khai báo các thông số kết nối cơ sở dữ liệu của mã nguồn:

WordPress: Mặc định sẽ là file wp-config.php

/** The name of the database for WordPress */

define(‘DB_NAME’, ‘database_name_here’);

/** MySQL database username */

define(‘DB_USER’, ‘username_here’);

/** MySQL database password */

define(‘DB_PASSWORD’, ‘password_here’);

/** MySQL hostname */

define(‘DB_HOST’, ‘localhost’);

Joomla: Mặc định sẽ là file configuration.php

var $host = ‘localhost’; // usually “localhost”. If it’s different for your server then your hosting provider should be able to tell you that.

var $user = ‘the_db_username’;

var $db = ‘the_databasename’;

var $password = ‘the_db_password’;

var $live_site = ”; // is usually empty.

Magento: Mặc định sẽ là file local.xml

<host><![CDATA[localhost]]></host>

<username><![CDATA[root]]></username>

<password><![CDATA[root]]></password>

<dbname><![CDATA[dev_xarisma]]></dbname>

Yii2 Framework:

  • Đối với Yii2 basic: source_web\config\db.php
  • Đối với Yii2 advanced: source_web\common\config\main-local.php
<?php 
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=yii2basic',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
    'tablePrefix' => 'tbl_'
    'enableSchemaCache' => true,
    'schemaCacheDuration' => 60,
    'schemaCache' => 'cache',
]; 
?>

Trong đó:

mysql: là hệ quản trị csdl, ngoài mysql yii2 còn hỗ trợ các hệ quản trị csdl khác như: MariaDB, SQLite, PostgreSQL (v8.4 trở lên), CUBRID (v9.3 trở lên), Oracle, MSSQL (v2008 trở lên), MongoDb (cài thêm phần mở rộng), …

Các chuỗi kết nối đến các hệ quản trị csdl khác:

MySQL, MariaDB: mysql:host=localhost;dbname=mydatabase

SQLite: sqlite:/path/to/database/file

PostgreSQL: pgsql:host=localhost;port=5432;dbname=mydatabase

CUBRID: cubrid:dbname=demodb;host=localhost;port=33000

MS SQL Server (via sqlsrv driver): sqlsrv:Server=localhost;Database=mydatabase

MS SQL Server (via dblib driver): dblib:host=localhost;dbname=mydatabase

MS SQL Server (via mssql driver): mssql:host=localhost;dbname=mydatabase

Oracle: oci:dbname=//localhost:1521/mydatabase

host là máy chủ dữ liệu, nếu máy chủ dữ liệu không phải là máy đang chạy web thì bạn sẽ thay localhost bằng ip của máy chủ dữ liệu đó

dbname là tên cơ sở dữ liệu của bạn

charset là bảng mã ta thường dùng hai định dạng là utf8 hay utf8mb4 (bổ sung thêm phần lưu các ký tự đặc biệt).

tablePrefix là tiền tố của tên table trong cơ sở dữ liệu, vd: tbl_users, tbl_posts.

username, password: các thông số dùng để kết nối đến cơ sở dữ liệu.

Các tham số: enableSchemaCacheschemaCacheDurationschemaCache dùng để cache cơ sở dữ liệu mục đích là tăng tốc truy vẫn thông tin. Bạn cho phép các tham số này khi website của bạn đang ở chế độ xuất bản.

Đối với mã nguồn khác tự phát triển thì bạn cần kiểm tra để chắc chắn các tham số trên đã hoàn toàn chính xác.

Ngoài ra, bạn nên cần lưu ý về việc gán quyền cho user này tương ứng với databases cần kết nối. Sau khi chắc chắn các tham số trên hoàn toàn chính xác thì xóa cache trình duyệt và truy cập lại vào website để kiểm tra.

guest

0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận