2013-04-29 37 views

Trả lời

257

Để kết nối từ xa bạn phải có MySQL ràng buộc cổng 3306 đến địa chỉ IP của máy tính của bạn trong my.cnf. Sau đó, bạn phải tạo người dùng trong cả localhost và ký tự đại diện '%' và cấp quyền cho tất cả các DB như vậy . Xem dưới đây:

my.cnf (my.ini trên cửa sổ)

#Replace xxx with your IP Address 
bind-address  = xxx.xxx.xxx.xxx 

sau đó

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; 
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass'; 

Sau đó

GRANT ALL ON *.* TO 'myuser'@'localhost'; 
GRANT ALL ON *.* TO 'myuser'@'%'; 

Tùy thuộc vào hệ điều hành của bạn, bạn có thể phải mở cổng 3306 để cho phép kết nối từ xa.

+0

Điều này đã giúp tôi sử dụng cá thể MySQL riêng tư của WebFaction. Tôi đã làm theo các bước CREATE USER và GRANT ALL của bạn, đặt 'mysql.default_port = ' trong tệp php.ini của tôi, và sau đó sử dụng '127.0.0.1' cho toàn bộ tên máy chủ db của tôi – spex

+0

Rất hữu ích. Chỉ cần một bình luận. my.cnf có thể bao gồm một tệp cấu hình khác để dòng có liên quan có thể ở một nơi khác. Trong my.cnf tìm một dòng bắt đầu với! Include, nếu bind-address không có trong my.cnf, nó có thể nằm trong tập tin đó. – Joan

+0

Tệp my.cnf ở đâu? –

8

cho DB nào là người dùng? xem ví dụ này

mysql> create database databasename; 
Query OK, 1 row affected (0.00 sec) 
mysql> grant all on databasename.* to [email protected] identified by 'password'; 
Query OK, 0 rows affected (0.00 sec) 
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

để trả lại cho bạn câu hỏi "%" có nghĩa là tất cả các máy tính trong mạng của bạn.

như chương trình aspesa Tôi cũng chắc chắn rằng bạn phải tạo hoặc cập nhật người dùng. tìm kiếm tất cả người dùng mysql của bạn:

SELECT user,password,host FROM user; 

ngay sau khi bạn đã sử dụng của bạn thiết lập, bạn sẽ có thể kết nối như thế này:

mysql -h localhost -u gmeier -p 

hy vọng nó sẽ giúp

+0

nói chung, cho tất cả db. Tôi chỉ muốn kết nối, không chọn DB. 'code'mysql_connect ('localhost: 3306', 'user', 'password'); 'code' – user2333586

+0

bạn đang sử dụng hệ điều hành nào, Windows, Linux ?? – apesa

+0

cửa sổ. wamp máy chủ. – user2333586

7

theo chỉ dẫn (bước 1-3 không cần thiết trong cửa sổ):

  1. Tìm mysql cấu hình để chỉnh sửa:

    /etc/mysql/my.cnf (Mysql 5.5)

    /etc/mysql/conf.d/mysql.cnf (Mysql 5.6+)

  2. Tìm bind-address=127.0.0.1 trong sự thay đổi tập tin cấu hình bind-address=0.0.0.0 (bạn có thể đặt địa chỉ bám vào một trong ip giao diện của bạn hoặc như tôi sử dụng 0.0.0.0)

  3. Khởi động lại mysql dịch vụ chạy trên giao diện điều khiển: service restart mysql

  4. Tạo một người dùng với một mật khẩu an toàn cho kết nối từ xa.Để thực hiện điều chạy này lệnh trong mysql (nếu bạn đang sử dụng Linux để đạt mysql console chạy mysql và nếu bạn thiết lập mật khẩu cho root chạy mysql -p) sau:

    GRANT ALL PRIVILEGES 
    ON *.* TO 'remote'@'%' 
    IDENTIFIED BY 'safe_password' 
    WITH GRANT OPTION;` 
    

Bây giờ bạn nên có một người dùng với tên của user và mật khẩu safe_password với khả năng kết nối từ xa.

+2

thay đổi địa chỉ liên kết = 0.0.0.0 ... đã hoạt động đối với tôi. và cấp đặc quyền – zwitterion

Các vấn đề liên quan