首頁  >  文章  >  後端開發  >  php7的設定檔裡沒有mysql.default_socket嗎?

php7的設定檔裡沒有mysql.default_socket嗎?

WBOY
WBOY原創
2016-12-05 13:44:232200瀏覽

[更新]剛剛查文檔注意到,PHP7已經不支持mysql擴展了,但是我該怎麼解決只能用127.0.0.1鏈接,不能使用localhost鏈接的問題呢?

…………………………………………………………………………………………

為什麼會有這個問題呢?
我寫了一個PHP腳本來鏈接數據庫,代碼如下,當如果mysql的地址是127.0.0.1,則能夠鏈接,如果地址換成localhost,則提示`PHP Warning: mysqli::mysqli(): ( HY000/2002): No such file or directory in /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php on line 9
`

<code>$mysqli = new mysqli("127.0.0.1", "root", "root", "wordpress");
if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    echo "\n";
    exit;
}else{
    echo "Connect! \n";
}


$sql = "SELECT * FROM wp_amz_key;";
$result = $mysqli->query($sql);

/* close connection */
$mysqli->close();
</code>

然後我搜尋了一些解決方法,主要是修改php.ini的設定檔裡這三個選項的值

<code>pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock</code>

然後我的問題就出現了:
我的ubuntu上使用的是php7,透過phpinfo查到php.ini的文件,打開之後,沒有mysql.default_socket
參數,只有其他兩個,然後我再查看版本的php.ini發現有mysql.default_socket,所以請問PHP7的設定檔裡沒有mysql.default_socket嗎?
所以,我的問題是:
1.腳本中連結資料庫出現問題,是不是可以用這種方法解決?
2.PHP7中的php.ini設定檔是不是沒有mysql.default_socket,還是我安裝的有問題?
先謝謝大神

回覆內容:

[更新]剛剛查文檔注意到,PHP7已經不支持mysql擴展了,但是我該怎麼解決只能用127.0.0.1鏈接,不能使用localhost鏈接的問題呢?

…………………………………………………………………………………………

為什麼會有這個問題呢?
我寫了一個PHP腳本來鏈接數據庫,代碼如下,當如果mysql的地址是127.0.0.1,則能夠鏈接,如果地址換成localhost,則提示`PHP Warning: mysqli::mysqli(): ( HY000/2002): No such file or directory in /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php on line 9
`

<code>$mysqli = new mysqli("127.0.0.1", "root", "root", "wordpress");
if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    echo "\n";
    exit;
}else{
    echo "Connect! \n";
}


$sql = "SELECT * FROM wp_amz_key;";
$result = $mysqli->query($sql);

/* close connection */
$mysqli->close();
</code>

然後我搜尋了一些解決方法,主要是修改php.ini的設定檔裡這三個選項的值

<code>pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock</code>

然後我的問題就出現了:
我的ubuntu上使用的是php7,透過phpinfo查到php.ini的文件,打開之後,沒有mysql.default_socket
參數,只有其他兩個,然後我再查看版本的php.ini發現有mysql.default_socket,所以請問PHP7的設定檔裡沒有mysql.default_socket嗎?
所以,我的問題是:
1.腳本中連結資料庫出現問題,是不是可以用這種方法解決?
2.PHP7中的php.ini設定檔是不是沒有mysql.default_socket,還是我安裝的有問題?
先謝謝大神

沒有 mysql.default_socket
但是有 mysqli.default_socketpdo_mysql.default_socket
因為有擴展myiPHapdo_mysql.default_socket


不過我們通常是透過IP和連接埠連接MySQL,這種情況下並不需要指定什麼default_socket.直接$db = new mysqli('127.0.0.1','root','pass','mysql', 3306);
不就行了.
就算你要透過socket連接MySQL,同樣也可以在連線時指定:$db = new mysqli(null,'root','pass','mysql',null,' /path/to/mysqld.sock');

所以不需要糾結任何事情.

都在本地的話,用socket和用ip位址並沒有什麼差別。

1、檢查mysql設定檔my.conf中是否有一行bind-address = 127.0.0.1

,如果有的話加上#註解或刪除重啟mysql


2、查看mysql的帳號允許連結的主機是否限制為127.0.0.1了SELECT User, Host FROM mysql.user;

🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn