在运行这个简单的脚本时:
<?php
$link = mysqli_connect("localhost", "*****", "********", "***");
if (!$link) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
printf("Host information: %s\n", mysqli_get_host_info($link));
mysqli_close($link);
?>
在我的networksolutions帐户上收到此错误
连接失败:无法通过socket'/tmp/mysql.sock'连接到本地MySQL服务器(2)
我两次打电话给网络解决方案技术支持。他们“重新同步”了服务器,我们重新验证了“连接字符串”的功能参数......但是没有去。我尝试从mysql_connect()切换到mysqli_connect()。
我不知道它会是什么。我知道成千上万的NS客户必须这样做但却没有在他们的论坛上找到答案。
请帮忙。任何有兴趣在我的网站上工作的人都请告诉我。
由于
答案 0 :(得分:1)
尝试127.0.0.1
而不是localhost
使用TCP / IP而不是通过本地套接字建立连接,这似乎因某种原因而被破坏。
答案 1 :(得分:1)
下面的代码可能有帮助!
<?php
/*SERVER database connection*/
function dbconnect(){
$connection = mysql_connect('localhost','****','****);
if(!$connection){
return false;
}
if(!mysql_select_db('database_name')){
return false;
}
return $connection;
}
?>
答案 2 :(得分:1)
尝试使用本例作为基础的PDO
<?php
$orig = $_GET['orig'];
$des_id = $_GET['des_id'];
try {
$dbuser = "kim";
$dbpass = "kim";
$conn = new PDO('mysql:host=localhost;dbname=destination', $dbuser, $dbpass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT pl_id FROM view_places WHERE name = :name LIMIT 1");
$stmt->bindParam(':name',$orig);
$stmt->execute();
$result_1 = $stmt -> fetch();
$res1 = $result_1["pl_id"];
$stmt->bindParam(':name', $des_id);
$stmt->execute();
$result_2 = $stmt -> fetch();
$res2 = $result_2["pl_id"];
echo 'origin_number:'.$res1. ', '.'destination_id:'.$res2;
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
?>
答案 3 :(得分:0)
你确定它应该是localhost
吗?我知道Dreamhost不允许localhost
个连接通过 - 您必须连接到mysql.example.com
。
答案 4 :(得分:0)
让他们知道他们不仅需要设置正确的mysql插件默认套接字,而且需要mysqli插件默认套接字。
从我的服务器的php.ini
配置:
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = "/var/lib/mysql/mysql.sock"
mysqli.default_socket = "/var/lib/mysql/mysql.sock"
因此两者都必须设定。我打赌他们没有设置mysqli.default_socket。