首页 > 编程知识 正文

php.inimysql的简单介绍

时间:2023-12-27 22:27:59 阅读:327075 作者:DHNE

本文目录一览:

修改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_MACHINESOFTWAREPHPIniFilePath(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:phpext

另外,我测试了将其它的库激活,如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接口特性!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。