Hướng dẫn xử lý lỗi khi thông tin cấu hình kết nối database không chính xác

Bài viết này sẽ hướng dẫn xử lý lỗi khi thông tin cấu hình kết nối database không chính xác. Thông thường bạn thường gặp phải lỗi này khi upload mã nguồn website lên hosting hay lúc thực hiện chuyển dữ liệu website.

2. Dấu hiệu nhận biết lỗi
Dấu hiệu chung để nhận biết lỗi kết nối cơ sở dữ liệu là khi bạn truy cập vào website sẽ gặp các thông báo dạng như:
- Error establishing a database connection
- Database connection error (2): Could not connect to MySQL
- Database error
-  Can’t connect to MySQL server
- Access denied for user ‘xxx@192.168.0.1’
2. Các nguyên nhân và cách kiểm tra xử lý
  Một số nguyên nhân gây ra lỗi trên là do bạn cấu hình các thông số kết nối cơ sở dữ liệu cho website chưa đúng, dịch vụ mysql trên server tạm thời bị lỗi hay database hiện tại có vấn đề.

2.1 DỊCH VỤ MYSQL BỊ LỖI
Đây chính là nguyên nhân đầu tiên dẫn tới việc website của bạn không thể kết nối cơ sở dữ liệu. Để kiểm tra dịch vụ mysql có đang hoạt động bình thường trên server hay không bạn có thể thao tác như sau:
Đối với dịch vụ share hosting:
Để kiểm tra dịch vụ mysql trên server share hosting bạn truy cập vào phpMyAdmin để kiểm tra. Sau khi truy cập vào phpMyAdmin vẫn có thể thực hiện các thao tác bình thường thì chứng tỏ dịch vụ mysql trên server đang hoạt động bình thường. Để truy cập vào phpMyAdmin bạn thao tác như sau:
- Truy cập vào trung tâm tài khoản khách hàng tại link: https://secure.vinahost.vn/ac/index.php -> Control Panel -> tên gói dịch vụ share hosting của bạn.
- Sau khi vào Cpanel chọn Database Management -> phpMyAdmin để truy cập vào giao diện quản lý của phpMyAdmin, nếu bạn có thể truy cập vào phpMyAdmin thì có nghĩa là dịch vụ MySQL hoàn toàn bình thường và ngược lại nếu không thể truy cập vào phpMyAdmin thì bạn vui lòng liên hệ với phòng kỹ thuật để được hỗ trợ.
Cách kiểm tra dịch vụ MySQL trên share hosting:

Đối với dịch vụ VPS/Server:
Để kiểm tra dịch vụ mysql trên server, bạn cần chắc chắn đã cài dịch vụ mysql trên server của mình. Bạn có thể truy cập vào phpMyAdmin như trên share hosting để kiểm tra hoạt động của mysql hoặc có thể chạy các lệnh sau để kiểm tra hoạt động của mysql:
#/etc/init.d/mysql status
# service mysqld status
Nếu dịch vụ mysql trên server của bạn bị lỗi hay stop, bạn cần start dịch vụ mysql lên và truy cập lại vào website để kiểm tra.
2.2 THÔNG TIN KẾT NỐI DATABASE CHƯA CHÍNH XÁC
Hầu hết nguyên nhân website không thể kết nối cơ sở dữ liệu là do bạn cấu hình các tham số trong file cấu hình chưa chính xác hoặc trong lúc chuyển dữ liệu quý khách chưa cấu hình lại các tham số này. Để kiểm tra, bạn mở file cấu hình cơ sở dữ liệu của website lên và kiểm tra các thông số sau:
- Database Name: tên cơ sở dữ liệu mà website của quý khách kết nối.
- Database Username: tên username dùng để kết nối vào cơ sở dữ liệu của website.
Database Password: mật khẩu của user.
Database Host : hostname của database server, giá trị này mặc định sẽ là localhost.
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 dòng 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>
Đối với mã nguồn mà bạn tự phát triể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ì bạn vui lòng xóa cache trình duyệt và truy cập lại vào website để kiểm tra.
Để thực hiện việc gán quyền cho User này tương ứng với Database cần kết nối như sau:
Đối với dịch vụ share hosting:
Sau khi tiến hành tạo Database bạn cần phân Full quyền trên User đó:
Sau đó thực hiện việc Add User vào Database:
Đối với dịch vụ VPS/Server:
Bạn vui lòng xem hương dẫn tạo Database sau đây để kiểm tra xem các thao tác thực hiện của mình đã đúng chưa:
#  mysql -u root     (đăng nhập vào MySQL bằng tài khoản root)
#  create database databasename;     (tạo database tên là databasename, nếu khách hàng cung cấp tên cụ thể thì điền tên vào)
# grant all privileges on databasename.* to 'dbuser'@'localhost' identified by 'password';     (tạo user dbuser với mật khẩu là password và gán full quyền trên database databasename)
#  flush privileges;
#  exit 

Sau khi tạo Database xong, bạn cần thực hiện một số thao tác để kiểm tra lại như sau:
Truy cập thử bằng tài khoản database vừa tạo:
# mysql -u username -p password
# show databases;
Kiểm tra việc phân quyền user đã chính xác bằng cách chạy lệnh sau:
# mysql -u root
# SHOW GRANTS FOR 'user'@'localhost';
2.3 REMOTE ACCESS
Thông thường để nhận biết việc không thể kết nối tới cơ sở dữ liệu từ xa được, bạn có thể kiểm tra bằng một số cách cơ bản như sau:
Sử dụng công cụ Command Prompt trên máy tính cá nhân bằng cách như sau: Start => Run => gõ cmd, nhấn Enter để ra giao diện Command Prompt sau đó tiến hành gõ lệnh để kiểm tra kết nối tới port của dịch vụ MySQL, mặc định thông thường dịch vụ MySQL sẽ lắng nghe trên port 3306, sử dụng lệnh: telnet IP 3306 (ví dụ: khách hàng kết nối tới Server có IP là 192.168.0.1 thì gõ như sau: telnet 192.168.0.1 3306).
Kiểm tra lại việc đã tạo Quản lý cơ sỡ dữ liệu từ xa trong cPanel đã đúng về IP của Server chứa Database chưa. Bạn có thể tham khảo thêm các bài viết sau đây:
2.4 DATABASE TABLE CRASH
Khi một table trong database của bạn bị crash sẽ dẫn tới việc website của bạn không thể kết nối cơ sở dữ liệu. Bạn có thể kiểm tra các table trên database có bị crash hay không bằng cách thao tác như sau:
Đối với dịch vụ share hosting:
- Truy cập vào trung tâm tài khoản khách hàng tại link: https://secure.vinahost.vn/ac/index.php -> Control Panel -> tên gói dịch vụ share hosting của bạn.
- Sau đó chọn Database Management -> MySQL Databases -> Modify Databases
- Chọn database cần kiểm tra sau đó click "Check DB". Nếu table bị crash chọn database bị crash và click vào "Repair DB" để repair lại database này
Đối với dịch vụ VPS/Server:
Có thể thao tác như trên gói dịch vụ share hosting nếu trên server của bạn có cài Cpanel. Ngoài ra, có thể chạy lệnh mysqlcheck để kiểm tra database:
# mysqlcheck -c database_name  -u root -p
Nếu table bị crash bạn chạy lệnh sau để repair database:
# mysqlcheck -r database_name -u root -p
Bạn lưu ý thay thế "database_name" bằng tên của database cần kiểm tra. Sau khi repair hãy xóa cache trình duyệt và truy cập lại vào website để kiểm tra
*Nếu sao khi thực hiện các thao tác trên vẫn có lỗi xảy ra, bạn vui lòng gửi yêu cầu đến phòng kỹ thuật và kèm theo thông tin và hình ảnh báo lỗi để phòng kỹ thuật có thể hỗ trợ.
Tham Khảo:
http://codex.wordpress.org/Editing_wp-config.php
 Chúc bạn thành công!

Powered by WHMCompleteSolution