Номер порта сервера MySQL - PullRequest
       43

Номер порта сервера MySQL

64 голосов
/ 17 сентября 2010

Я только что создал базу данных на MySQL на моем сервере.Я хочу подключиться к этому через мой сайт, используя php.Это содержимое моего файла соединений:

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

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

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

Я знаю, что такое имя пользователя / пароль, и знаю IP-адрес сервера.Мне просто интересно, как узнать, какой порт использовать?

Ответы [ 9 ]

78 голосов
/ 17 сентября 2010

Если ваш сервер MySQL работает с настройками по умолчанию, вам не нужно указывать это.

Порт MySQL по умолчанию: 3306.

[обновлен для отображения использования mysql_error ()]

$conn = mysql_connect($dbhost, $dbuser, $dbpass)
    or die('Error connecting to mysql: '.mysql_error());
53 голосов
/ 21 августа 2013

Для Windows. Если вы хотите узнать номер порта вашего локального хоста, на котором запущен Mysql , вы можете использовать этот запрос на клиенте командной строки MySQL -

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)

Это даст вам номер порта, на котором работает MySQL.

9 голосов
/ 17 сентября 2010

проверить это чувак

<?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);
?>
7 голосов
/ 06 августа 2013

если вы хотите, чтобы ваш порт был переменной, вы можете написать php следующим образом:

$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);
2 голосов
/ 12 сентября 2015

Это визуализация только для PDO, поскольку библиотека mysql_* устарела.

<?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();
    }
?>

Обратите внимание, что этот OP-вопрос, похоже, не относится к номерам портов. Если вы всегда используете порт по умолчанию 3306, рассмотрите возможность его удаления из URI, то есть удалите часть port=$port;.

Если вы часто меняете порты, рассмотрите вышеупомянутое использование порта для большей ремонтопригодности, сделав изменения в переменной $port.

Некоторые вероятные ошибки, возвращаемые сверху:

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.

В приведенной ниже ошибке мы как минимум приближаемся после изменения нашей информации о соединении:

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

После дальнейших изменений мы действительно близки, но не совсем:

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

Из руководства по Соединения PDO :

2 голосов
/ 05 июля 2013

порт mysql по умолчанию: 3306

банк по умолчанию для сервера sql: 1433

2 голосов
/ 17 сентября 2010

Если вы укажете 'localhost', клиент по умолчанию будет использовать сокет файловой системы в Unix-системе - попробуйте значение mysql_default_socket из php.ini (если установлено), затем значение my.cnf.

Если вы подключаетесь с помощью другого инструмента, попробуйте ввести команду «Показать переменные, такие как«% socket% »»

Если вы хотите использовать сетевой порт (который немного медленнее), попробуйте указать 127.0.0.1 или физический интерфейс, связанный с машиной.

1 голос
/ 26 октября 2018

попробуй

$conn = mysql_connect($host, $username, $password, $port);
0 голосов
/ 15 декабря 2017
  <?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';
    }
    ?>
...