Nếu bạn có toàn quyền truy cập vào máy chủ của mình (yêu cầu đặc quyền root):
Bước 1:chỉnh sửa my.cnf (thường nằm trong / etc)
Tìm dòng sau:[mysqld]
và đảm bảo dòng skip-networking
được nhận xét (hoặc xóa dòng) và thêm dòng sau:
bind-address=YOUR-SERVER-IP
Ví dụ:nếu IP máy chủ MySQL của bạn là 66.166.170.28 thì toàn bộ khối sẽ có dạng như sau:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 66.166.170.28
# skip-networking
.......
Ở đâu
- địa chỉ ràng buộc :Địa chỉ IP để liên kết.
- bỏ qua mạng :Hoàn toàn không lắng nghe các kết nối TCP / IP. Tất cả các tương tác với mysqld phải được thực hiện thông qua Unix socket. Tùy chọn này rất được khuyến khích cho các hệ thống chỉ cho phép các yêu cầu cục bộ. Vì bạn cần cho phép kết nối từ xa nên xóa dòng này khỏi my.cnf hoặc đặt nó ở trạng thái bình luận.
Bước 2:Cấp quyền truy cập cho tất cả các máy chủ
Khởi động trình theo dõi MySQL bằng lệnh sau:mysql
hoặc /usr/local/mysql/bin/mysql
. Lời nhắc trình bao của bạn bây giờ sẽ giống như sau:mysql>
. Chạy lệnh này:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY "PASSWORD";
Ở đâu:
- USERNAME là tên người dùng mà bạn sử dụng khi kết nối bằng tập lệnh php của mình.
- MẬT KHẨU là mật khẩu bạn sử dụng khi kết nối.
Bây giờ bạn phải xóa các đặc quyền của MySQL. Chạy lệnh này:
FLUSH PRIVILEGES;
Chạy lệnh này để thoát MySQL:
exit;
Bước 3:Khởi động lại mysql deamon
/etc/init.d/mysqld restart
hoặc
/etc/init.d/mysql restart
tùy thuộc vào máy chủ của bạn hiện đang chạy bản phân phối linux nào.