【发布时间】:2016-01-11 12:24:56
【问题描述】:
我想连接到我技术学院的mysql服务器.. 我的 php 文件 db_config.php
<?php
/*
All Database connection variables
*/
define("DB_SERVER", "aetos.it.teithe.gr");
define("DB_DATABASE", "votingdb");
define("DB_USER", "root@localhost");
define("DB_PASSWORD", "..");
?>
db_connect.php
<?php
/*
A class file to connect to database
*/
class DB_CONNECT{
/*
function to connect with database
*/
function connect(){
//import database connection variables
require_once __DIR__ . "/db_config.php";
//connecting to mysql database
$con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE) or die (mysqli_connect_errno() . PHP_EOL);
//returning connection cursor
if (!is_null($con)){
return $con;
}
}
}
test_connection.php
<?php
/*
get firm(table) from votingdb database details(firm_name, email, ...)
*/
//array for json response
$response = array();
//include db_connect class
require_once __DIR__ . "/db_connect.php";
//initialise DB_CONNECT class
$db_connect = new DB_CONNECT();
//get $link for the db connection link
$link = $db_connect->connect();
//get firm_name field from firm table
$result = mysqli_query($link, "SELECT firm_name, city FROM Firm");
if (!empty($result)){
echo nl2br("firm has " . mysqli_num_rows($result) . " firms\n");
$response["firms"] = array();
while ($row = mysqli_fetch_array($result)){
//temp user array
$firm = array();
$firm["firm name"] = $row["firm_name"];
$firm["firm city"] = $row["city"];
//push single product into final response array
array_push($response["firms"], $firm);
}
//success
$response["success"] = 1;
//echo json response
echo json_encode($response, JSON_PRETTY_PRINT);
//free result set
mysqli_free_result($result);
//close connection
mysqli_close($link);
}
else {
$response["success"] = 0;
$response["message"] = "No firms found";
echo json_encode($response, JSON_PRETTY_PRINT);
}
?>
当我运行 test_connection.php 时出现以下错误...警告:mysqli_connect(): (HY000/2003): Can't connect to MySQL server on 'aetos.it.teithe.gr' (111) in /home/student/x0809/tsironis/public_html/Ptixiaki/db_connect.php 2003 年第 16 行 谁能解释我做错了什么?
我还添加了 my.cnf 文件
[client]
socket=/home/student/x0809/tsironis/mysql/run/mysql.sock
[mysqld_safe]
socket=/home/student/x0809/tsironis/mysql/run/mysql.sock
[mysqld]
socket=/home/student/x0809/tsironis/mysql/run/mysql.sock
pid-file=/home/student/x0809/tsironis/mysql/run/mysql.pid
log=/dev/null
log-error=//home/student/x0809/tsironis/mysql/log/mysql.log
log_bin=/home/student/x0809/tsironis/mysql/log/mysql-bin.log
datadir=/home/student/x0809/tsironis/mysql/data
tmpdir=/home/student/x0809/tsironis/mysql/tmp
max_binlog_size=10M
skip-networking
【问题讨论】:
-
我看到的第一件事就是用户错误未定义(“DB_USER”,“root@localhost”);只定义("DB_USER", "root");
-
第二个是:看起来数据库在3306端口上没有到达。是否有防火墙或在my.cnf中绑定地址是localhost。将其更改为 0.0.0.0
-
还是一样..我也改变了服务器的路径...("DB_SERVER", "aetos.it.teithe.gr/home/student/x0809/tsironis/mysql/run/ mysql.sock");
标签: mysql