2010-09-17 41 views
50

Tôi vừa tạo một cơ sở dữ liệu trên mysql trên máy chủ của mình. Tôi muốn kết nối với điều này thông qua trang web của tôi bằng cách sử dụng php. Đây là nội dung của các tệp kết nối của tôi:số cổng máy chủ mysql

$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'password'; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) 
    or die('Error connecting to mysql'); 

$dbname = 'epub'; 
mysql_select_db($dbname); 

Tôi biết tên người dùng/mật khẩu là gì và tôi biết địa chỉ IP của máy chủ. Những gì tôi chỉ tự hỏi là làm thế nào để tôi biết được cổng để sử dụng?

+1

Loại máy này là gì? Nếu kiểm tra linux của nó nếu mysqld đang chạy, hoặc là "trạng thái mysqld dịch vụ" hoặc "/etc/init.d/mysqld status" là root. – Chris

+0

@Chris, Nó đang chạy trên một máy chủ cửa sổ, 2008. – 109221793

Trả lời

62

Nếu máy chủ MySQL của bạn chạy trên cài đặt mặc định, bạn không cần chỉ định điều đó.

cổng MySQL

Mặc định là 3306.

[cập nhật để hiển thị mysql_error() sử dụng]

$conn = mysql_connect($dbhost, $dbuser, $dbpass) 
    or die('Error connecting to mysql: '.mysql_error()); 
+0

Tôi đã thử cả địa chỉ IP trên chính nó và với: 3306 được thêm vào cuối của nó, không có tác phẩm nào. Có cách nào tôi có thể tìm ra nếu có một cổng khác? Tôi không thiết lập máy chủ này. – 109221793

+0

Fitst bạn nên kiểm tra những gì là lỗi bạn đang nhận được từ mysql_connect(). Sử dụng hàm mysql_error() cho điều đó. Biết được lỗi là gì, sẽ giúp chúng tôi tìm hiểu điều gì đang xảy ra và vấn đề thực sự là gì. – Mchl

+0

Lỗi này là: Không thể kết nối với máy chủ MySQL trên 'xxx.xx.xx.xx' (10060) – 109221793

2

Nếu bạn chỉ định 'localhost' mặc định khách hàng libs để sử dụng các ổ cắm hệ thống hệ thống tập tin trên một hệ thống Unix - thử giá trị mysql_default_socket từ php.ini (nếu được đặt) thì giá trị my.cnf.

Nếu bạn kết nối sử dụng một công cụ khác nhau, cố gắng ban hành lệnh "biến chương trình như '% ổ cắm%'"

Nếu bạn muốn sử dụng một cổng mạng (mà là một chút wee chậm hơn) sau đó cố gắng xác định 127,0 .0.1 hoặc giao diện vật lý được kết hợp với máy.

9

việc kiểm tra này ra anh chàng

<?php 
// we connect to example.com and port 3307 
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
echo 'Connected successfully'; 
mysql_close($link); 

// we connect to localhost at port 3307 
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
echo 'Connected successfully'; 
mysql_close($link); 
?> 
2

cổng mặc định của mysql là nồi 3306

mặc định của máy chủ sql là 1433

4

nếu bạn muốn có cổng của bạn như là một biến , bạn có thể viết php như sau:

$username = user; 
$password = pw; 
$host = 127.0.0.1; 
$database = dbname; 
$port = 3308; 

$conn = mysql_connect($host.':'.$port, $username, $password); 
$db=mysql_select_db($database,$conn); 
49

Đối với cửa sổ, Nếu bạn muốn biết số cổng của host nội bộ của bạn trên đó Mysql đang chạy, bạn có thể sử dụng truy vấn này trên dòng client MySQL Command -

SHOW VARIABLES WHERE Variable_name = 'port'; 


mysql> SHOW VARIABLES WHERE Variable_name = 'port'; 
+---------------+-------+ 
| Variable_name | Value | 
+---------------+-------+ 
| port   | 3306 | 
+---------------+-------+ 
1 row in set (0.00 sec) 

Nó sẽ cho bạn số cổng mà MySQL đang chạy.

1

Đây là hình ảnh chỉ hiển thị PDO vì thư viện mysql_* không còn được dùng nữa.

<?php 
    // Begin Vault (this is in a vault, not actually hard-coded) 
    $host="hostname"; 
    $username="GuySmiley"; 
    $password="thePassword"; 
    $dbname="dbname"; 
    $port="3306"; 
    // End Vault 

    try { 
     $dbh = new PDO("mysql:host=$host;port=$port;dbname=$dbname;charset=utf8", $username, $password); 
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     echo "I am connected.<br/>"; 

     // ... continue with your code 

     // PDO closes connection at end of script 
    } catch (PDOException $e) { 
     echo 'PDO Exception: ' . $e->getMessage(); 
     exit(); 
    } 
?> 

Lưu ý rằng câu hỏi OP này dường như không còn về số cổng sau. Nếu bạn đang sử dụng cổng mặc định là 3306 luôn, hãy xem xét xóa nó khỏi uri, tức là xóa phần port=$port;.

Nếu bạn thường xuyên thay đổi cổng, hãy xem xét việc sử dụng cổng trên để có thêm khả năng bảo trì có thay đổi đối với biến số $port.

Một số lỗi có khả năng quay trở lại với phần trên:

PDO Exception: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it. 
PDO Exception: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. 

Trong báo lỗi dưới đây, chúng tôi ít nhất là nhận được gần hơn, sau khi thay đổi thông tin kết nối của chúng tôi:

PDO Exception: SQLSTATE[HY000] [1045] Access denied for user 'GuySmiley'@'localhost' (using password: YES) 

Sau khi thay đổi hơn nữa, chúng tôi thực sự đóng ngay bây giờ, nhưng không hoàn toàn:

PDO Exception: SQLSTATE[HY000] [1049] Unknown database 'mustard' 

Từ hướng dẫn sử dụng trên PDO Connections:

0
<?php 
    $dbhost = 'localhost:3306'; 
//3306 default port number $dbhost='localhost'; is enough to specify the port number 
//when we are utilizing xammp default port number is 8080. 
     $dbuser = 'root'; 
     $dbpass = ''; 
     $db='users'; 

      $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$db) or die ("could not connect to mysql");  

       // mysqli_select_db("users") or die ("no database"); 

    if(! $conn) { 
     die('Could not connect: ' . mysqli_error($conn)); 
    }else{ 
     echo 'Connected successfully'; 
    } 
    ?> 
+0

Bạn có thể giải thích câu trả lời của mình nhiều hơn không? – soundslikeodd

+0

số cổng 3306 được sử dụng cho MySQL và tomcat sử dụng cổng 8080.thêm số cổng có sẵn để chạy các máy chủ hoặc phần mềm bất cứ điều gì có thể được biên dịch tức thì của chúng tôi. 8080 là mặc định cho số vì vậy chỉ có chúng tôi đang nhận được lỗi cổng trong eclipse IDE. jvm và tomcat luôn thích 8080.3306 là số cổng mặc định cho MySQL.So chỉ không muốn đề cập đến mọi lúc là "localhost: 3306" –

+0

Vui lòng chỉnh sửa câu trả lời của bạn bằng lời giải thích. – soundslikeodd

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