php.inimysql的簡單介紹

本文目錄一覽:

修改php.ini如何實現Mysql導入數據庫文件最大限制的修改方法

非root用戶運行MySQL,當MySQL配置比較高時,MySQL運行中生效的參數值與配置的值不一樣,所以具體分析一下MySQL是怎麼調整這些參數值的。 這篇文章的目的是為了說明在系統資源不夠的情況下,MySQL 是怎麼調整者三個參數的。說明此文涉及到三個參數open_files_limit、 max_connections、 table_open_cache。與這三個參數相關的系統資源是打開文件數限制,即文件描述符(fd)限制。系統參數與文件描述符的關係 – max_connection  fd : 每一個MySQL connection      都需要一個文件描述符;- table_open_cache  fd 打開一張表至少需要一個      文件描述符,如打開MyISAM需要兩個fd ;- 系統最大打開文件數可以通過 ulimit -n查看。MySQL調整參數的方式

根據配置(三個參數的配置值或默認值)計算 request_open_files(需要的文件描述符);

2.獲取有效的系統的限制值effective_open_files;  3.根據effective_open_files調整request_open_files;  4.根據調整後的request_open_files,計算實際生效的參數值(show variables 可查看參數值)。計算request_open_filesrequest_open_files有三個計算公式:1.      // 最大連接數+同時打開的表的最大數量+其他(各種日誌等等)2.     limit_1= max_connections+table_cache_size * 2 + 10;3.   4.      //假設平均每個連接打開的表的數量(2-4)5.      //源碼中是這麼寫的:6.      //We are trying to allocate no less than 7.      // max_connections*5 file handles8.      limit_2= max_connections * 5;9.   10.    //mysql 默認的默認是500011.    limit_3= open_files_limit ? open_files_limit : 5000;12.  13.     所以open_files_limit期待的最低14.     request_open_files= max(limit_1,limit_2,limit_3);計算effective_open_files:MySQL 的思路:

在有限值的的範圍內MySQL 盡量將effective_open_files的值設大。

修正request_open_files

requested_open_files= min(effective_open_files, request_open_files)

重新計算參數值

修正open_files_limit

open_files_limit = effective_open_files

修正max_connections

max_connections 根據 request_open_files 來做修正。1.  limit = requested_open_files – 10 – TABLE_OPEN_CACHE_MIN * 2;

如果配置的max_connections值大於limit,則將max_connections 的值修正為limit

其他情況下 max_connections 保留配置值

修正table_cache_size

table_cache_size 會根據 request_open_files 來做修正1.   // mysql table_cache_size 最小值,4002.   limit1 = TABLE_OPEN_CACHE_MIN3.   // 根據 requested_open_files 計算4.   limit2 = (requested_open_files – 10 – max_connections) / 25.   limit = max(limit1,limt2);

如果配置的table_cache_size 值大於limit,則將 table_cache_size 的值修正為limit

其他情況下table_cache_size 保留配置值

舉例

以下用例在非 root 用戶下運行

參數設置:

//mysql

max_connections = 500

table_open_cache = 999

//ulimit -n

1500

生效的值:

open_files_limit = 1500   max_connections = min[(1500 – 10 – 800),500] = 500

table_open_cache = ( 1500 – 10 – 500) / 2 =495

mac 怎麼配置php.ini 連接mysql

當嘗試在console下運行php腳本時卻提示pdo連接mysql.sock時出錯

PHP Error[2]: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)

但是查過了MAMP自帶的php5.2和php5.3的php.ini發現裏面的幾處默認mysql連接文件default_socket設置都沒有問題,於是google之。發現原來命令行的php是用了MAC OS自帶的php,需要修改MAC OS自帶的php.ini。 具體步驟如下:

如果你已經有/private/etc/php.ini就不需要再拷貝一份php.ini.default出來了。

cd /private/etc/

sudo cp php.ini.default php.ini

sudo vi php.ini

把php.ini裏面所有的default_socket都改成MAMP的mysql.sock的正確位置即可。

pdo_mysql.default_socket=/Applications/MAMP/tmp/mysql/mysql.sock

mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock

mysqli.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock

在WINDOWS 下PHP.INI的路徑以及如何激活mysql擴展庫

第一個原因是由於系統所讀取的php.ini文件與你當時修改的php.ini文件不一致造成的

1、 可以通過phpinfo()的Configuration File (php.ini) Path選項查看當前PHP服務器讀取的是哪一個php.ini

2、 如果你要更改php.ini的文件存取位置,可參考php.ini的搜索順序,如下所示:

a)�0�2�0�2�0�2�0�2�0�2�0�2 SAPI 模塊所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行選項,NSAPI 中的 php_ini 參數,THTTPD 中的 PHP_INI_PATH 環境變量)

b)�0�2�0�2�0�2�0�2�0�2�0�2 HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 註冊表位置)

c)�0�2�0�2�0�2�0�2�0�2 PHPRC 環境變量

d)�0�2�0�2�0�2�0�2�0�2�0�2 當前工作目錄(對於 CLI)

e)�0�2�0�2�0�2�0�2�0�2�0�2 web 服務器目錄(對於 SAPI 模塊)或 PHP 所在目錄(Windows 下其它情況)

f)�0�2�0�2�0�2�0�2�0�2�0�2 Windows 目錄(C:\windows 或 C:\winnt),或 –with-config-file-path 編譯時選項指定的位置

3、 一般做法:通過設置PHPRC 環境變量,

a)�0�2�0�2�0�2�0�2�0�2�0�2 操作:右擊我的電腦-屬性-高級-環境變量

b)�0�2�0�2�0�2�0�2�0�2�0�2 在系統變量下新建一個「變量名為PHPRC�0�2�0�2 ,變量值為你的php.ini文件所地文件路徑」的環境變量第二個原因是:PHP沒有找到相應的擴展庫

1、 查看PHP找到的擴展庫位置:在phpinfo()的extension_dir選項可以看到

2、 在php.ini更改extension_dir文件第三個原因:沒有完全重啟IIS

1、 對php.ini的修改必須完全重啟IIS才能起作用,而不能只是對當前站點進行重啟。

A:在PHP5.0以上版本,MySQL 默認未啟用,因此需要咱們進行手工激活。

1、 在PHP運行MySql,必須在 php.ini 中激活 php_mysql.dll 動態連接庫,另外還需要訪問 MySQL 客戶端連接庫即libmysql.dll文件

2、 可以通過php.ini中的extension激活 php_mysql.dll 動態連接庫;而libmysql.dll文件必須放在Windows 的系統路徑 PATH才能訪問,可以通過把libmysql.dll複製到system32目錄下,也可以在PATH環境變量中新增一個路徑。

3、 建議做法:通過設置PATH,方便以後的php升級,在系統環境變量中的PATH後增加「libmysql.dll」所在的文件夾即可。記得通過「;」號隔開

4、 [案例]最近,服務器總是找不到MySql擴展庫,導致程序無法運行。因此,把所有文件刪除後重新配置PHP服務器。但最後在安裝MySql的時候,卻始終無法激活MySql擴展庫。

在phpinfo()中找到的信息如下:

PATH:c:\php

PHPRC:C:\php

extension_dir:c:\php\ext\

另外,我測試了將其它的庫激活,如msql、gd2、XML,在phpinfo()都可以正常顯示

證明PHP能找到php_mysql.dll 動態連接庫,而MySql的運行的另一個條件是能夠訊問MySQL 客戶端連接庫即libmysql.dll文件,看來問題就在這裡了。

php.ini怎麼擴展mysql

Mysqli是php5之後才有的功能,沒有開啟擴展的朋友可以打開您的php.ini的配置文件。

查找下面的語句:;extension=php_mysqli.dll將其修改為:extension=php_mysqli.dll即可。

相對於mysql有很多新的特性和優勢

(1)支持本地綁定、準備(prepare)等語法

(2)執行sql語句的錯誤代碼

(3)同時執行多個sql

(4)另外提供了面向對象的調用接口的方法。

下面一一用php實例進行mysqli數據庫連接!

使用方法一:使用傳統的面向過程的方法

php代碼如下:

?php

$connect = mysqli_connect(‘localhost’,’root’,”,’volunteer’) or die(‘Unale to connect’);

$sql = “select * from vol_msg”;

$result = mysqli_query($connect,$sql);

while($row = mysqli_fetch_row($result)){

echo $row[0];

}

?

使用方法二:使用面向對象的方法調用接口(推薦使用)

看php代碼如下:

複製代碼 代碼如下:

?php

//創建對象並打開連接,最後一個參數是選擇的數據庫名稱

$mysqli = new mysqli(‘localhost’,’root’,”,’volunteer’);

//檢查連接是否成功

if (mysqli_connect_errno()){

//注意mysqli_connect_error()新特性

die(‘Unable to connect!’). mysqli_connect_error();

}

$sql = “select * from vol_msg”;

//執行sql語句,完全面向對象的

$result = $mysqli-query($sql);

while($row = $result-fetch_array()){

echo $row[0];

}

?

以上兩個php實例運行的結果完全相同,可以清楚的看到使用mysqli類對象構建數據庫連接的優勢!

插入和修改記錄我就不用講了,只要更改一下sql語句就行,下一篇我會講prepare接口特性!

原創文章,作者:VWMM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/133962.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VWMM的頭像VWMM
上一篇 2024-10-04 00:02
下一篇 2024-10-04 00:02

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27

發表回復

登錄後才能評論