Hướng dẫn sử dụng Procedure Mysql trên Hosting Cpanel
Procedure Mysql trên Hoting Cpanel hoạt động như thế nào
Hiện Cpanel đã hỗ trợ đầy đủ quyền (PRIVILEGES) bao gồm CREATE ROUTINE, ALTER ROUTINE, và EXECUTE để sử dụng Procedure cho user database Mysql.
Tuy nhiên, người sử dụng sẽ ở cấp độ Share Hosting sẽ không sử dụng được Procedure trong phpMyadmin, wesbite vì lý do như sau :
– Khi vào chức năng phpMyadmin trong hosting Cpanel để quản lý database. Session được ghi nhận login bằng tài khoản user host Cpanel ( không phải user database Mysql).
Khi khởi tạo mới Procedure hoặc import từ file .sql sẵn có thì những Procedure được tạo mới này sẽ có DEFINER theo dạng cpses_xxx@%.
Chính vì vậy mỗi lần login vào phpMyadmin sẽ có thông số Session khác nhau, DEFINER sẽ không giống nhau và sẽ không thể chỉnh sửa (Edit) hoặc thực thi (Execute) được những Procedure đã tạo ra trước đó nữa.
Cách thực hiện để sử dụng được Procedure Mysql bằng user host
– Thao tác từ quyền root Cpanel ( nếu bạn không có quyền thì liên hệ với người quản trị Server). Vào phpMyadmin từ quyền root > vào database chứa Procedure > Chạy lệnh sau
show procedure status;
Xác định được các Procedure đang thuộc DEFINER nào, ví dụ : cpses_xxx@%
Sau đó chạy lệnh
UPDATE `mysql`.`proc` p SET definer = 'my_user_db@%' WHERE definer='cpses_xxx@%' AND db='DB_NAME';
thay my_user_db bằng user database của bạn đã được tạo trong Cpanel dùng để kết nối database.
Test lại với Navicat hoặc Website sử dụng user database kết nối với Database chứa Procedure.
Lưu ý : Như đã nói ở phần trên, phpMyadmin trong Cpanel vẫn sẽ không chỉnh sửa (Edit) hoặc thực thi (Execute) được vì DEFINER của Procedure đang được set cố định theo my_user_db@% không phải dạng cpses_xxx@%.
Vấn đề đặt ra tiếp theo là làm sao sử dụng được việc chỉnh sửa và thực thi Procedure trên phpMyadmin.
Hướng giải quyết để sử dụng bằng phpMyadmin
Để sử dụng được Procedure thông qua đăng nhập phpMyadmin bằng user/pass database mà không thông qua Cpanel
– Download phiên bản phpMyadmin mới nhất ( https://www.phpmyadmin.net/downloads/ )
– Upload lên hosting và giải nén trong thư mục gốc của host.
– Rename và sử dụng theo Link http://yourdomain.com/phpMyAdmin
Lúc này đăng nhập vào phpMyadmin bằng user database, khi đó sẽ tạo, sửa, thực thi được vớ các Procedure có DEFINER là my_user_db@localhost
Có thể thực hiện chạy lệnh sau để đổi Procedure ve26Definer @localhost
UPDATE mysql.proc p SET definer = 'newuser@localhost' WHERE definer='olduser@localhost' AND db='DB_NAME';
P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/