Я только что создал базу данных на 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-адрес сервера. Мне просто интересно, как узнать, какой порт использовать?
Если ваш сервер MySQL работает по умолчанию, вам не нужно указывать его.
Порт MySQL по умолчанию – 3306.
[обновлено, чтобы показать использование mysql_error ()]
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql: '.mysql_error());
Для окон. Если вы хотите узнать номер порта вашего локального хоста, на котором запущен 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 (если установлено), то значение my.cnf.
Если вы подключаетесь с помощью другого инструмента, попробуйте выполнить команду «показать переменные типа«% socket% »»
Если вы хотите использовать сетевой порт (который немного медленнее), попробуйте указать 127.0.0.1 или физический интерфейс, связанный с машиной.
порт по умолчанию для mysql – 3306
По умолчанию сервер sql-сервера равен 1433
Это визуализация только для 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'; } ?>