номер порта сервера mysql
Я только что сделал базу данных на 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-адрес сервера. Мне просто интересно, как узнать, какой порт использовать?
8 ответов:
Если ваш сервер MySQL работает на настройках по умолчанию, вам не нужно указать, что.
порт MySQL по умолчанию-3306.
[обновлено, чтобы показать использование mysql_error ()]
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql: '.mysql_error());
для 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.
зацени чувак
<?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); ?>
Если вы хотите иметь свой порт в качестве переменной, вы можете написать 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);
Если вы укажете "localhost", клиентские библиотеки по умолчанию будут использовать системный сокет файловой системы в системе Unix - пробуя значение mysql_default_socket из php.ini (если установлен), то мой.КНФ значение.
Если вы подключаетесь с помощью другого инструмента, попробуйте выполнить команду "показать переменные, такие как"%socket%"
Если вы хотите использовать сетевой порт (который немного медленнее), то попробуйте указать 127.0.0.1 или физический интерфейс, связанный с машиной.
это 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 соединения:
<?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'; } ?>