PHP安装mysql.so扩展及相关PHP.ini 配置参数说明
在PHP中mysql_connect模块已经逐渐被弃用,我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个老项目时,出现报错
Fatal error: Uncaught Error: Call to undefined function mysql_connect()
于是google一下,发现如果php和mysql都已经安装完成了,可以使用phpize工具手动编译生成mysql.so扩展来解决
下面是操作步骤:
1.进入php源码的ext/mysql目录;注意php7以上;没有mysql目录了;改成mysqli 或者mysqlnd了;
#安装mysql
apt-get install libmysqld-dev
root@DK:/home/daokr/downfile/php-7.0.0/ext/mysqli
2.运行phpize,在该目录下生成一个configure文件(php安装目录:/home/php/bin/)目录下可以找到
root@DK:/home/daokr/downfile/php-7.0.0/ext/mysqli# /home/php/bin/phpize
3.运行configure,指明php-config文件位置(/home/php/bin/php-config)和mysql安装目录(/usr/share/mysql)
如果是默认安装的mysql 则不填;如果填写可以看下配置文件参数说明;
root@DK:/home/daokr/downfile/php-7.0.0/ext/mysqli# ./configure --help |grep mys
--with-mysqli=FILE Include MySQLi support. FILE is the path
to mysql_config. If no value or mysqlnd is passed
--enable-embedded-mysqli
--with-mysql-sock=SOCKPATH
--with-mysqli 加入mysqli支持,没有设置默认是mysqlnd
--with-mysql-sock=SOCKPATH 指定mysql套接字文件位置,如果没指定则搜索默认位置
查找到mysql配置文件的位置
root@DK:/usr/bin# find / -name "mysql_config"
/usr/bin/mysql_config
然后开始配置并安装:
./configure --with-php-config=/home/php/bin/php-config --with-mysqli=/usr/bin/mysql_config
然后
make && make install
5.修改php.ini文件,添加mysql.so扩展配置,保存退出
extension=mysql.so
6.重启php-fpm
service php-fpm restart
7.测试,在web目录下添加php文件,如/usr/local/nginx/html/mysql.php
<?php
$con = mysql_connect('localhost','root','');
if($con){
die('ok');
}else{
die('Could not connect: ' . mysql_error());
}
访问URL,如:http://192.168.8.9/mysql.php
显示ok,则配置成功
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'daokrdb'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysqli_error());
}
echo '数据库连接成功!';
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8"); //使用哪个个数据库
mysqli_select_db( $conn, 'daokrdb' );
$sql = 'SELECT * FROM t_users';
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<table border="1" width="100%"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
echo "<tr><td> {$row['id']}</td> ".
"<td>{$row['title']} </td> ".
"<td>{$row['author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
8.php.ini 配置说明
这是配置指令的简短说明。
mysqli.allow_local_infile
integer-
允许Mysql的Load Data语句访问PHP角度看的本地文件。
mysqli.allow_persistent
integer-
开启使用mysqli_connect()函数创建持久化连接的能力。
mysqli.max_persistent
integer-
可以创建的持久化连接的最大数量,设置为0表明不限制。
mysqli.max_links
integer-
每个进程中Mysql连接的最大数量。
mysqli.default_port
integer-
当没有指定其他端口号时使用的默认的用于连接数据库服务器的TCP端口号。如果没有设置默认值, 端口号将会按照顺序从环境变量MYSQL_TCP_PORT,/etc/services 文件中的mysql-tcp条目或编译期的MYSQL_PORT常量等位置获取。 Win32仅使用MYSQL_PORT常量。
mysqli.default_socket
string-
当连接到本地数据库服务器时如果没有指定其他socket名称,使用的默认socket名称。
mysqli.default_host
string-
当连接到数据库服务器时, 如果没有指定其他主机地址,使用的默认服务器主机。不要在 安全模式下使用。
mysqli.default_user
string-
当连接到数据库服务器时,如果没有指定其他用户名,使用的默认用户名。不要在 安全模式下使用。
mysqli.default_pw
string-
当连接到数据库服务器时,如果灭有指定其他密码,使用的默认密码。不要在 安全模式下使用。
mysqli.reconnect
integer-
连接丢失时是否自动重新连接。
mysqli.rollback_on_cached_plink
bool-
Used for rollbacking connections put back into the persistent connection pool.
mysqli.cache_size
integer-
仅可用于 mysqlnd。
用户不能通过API调用或运行时配置来设置MYSQL_OPT_READ_TIMEOUT。 注意,如果可能这样做那么libmysql和流对MYSQL_OPT_READ_TIMEOUT 的值将会有不同的解释。
PHP安装mysql.so扩展及相关PHP.ini 配置参数说明的更多相关文章
- PHP安装mysql.so扩展
在PHP中mysql_connect模块已经逐渐被弃用,我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个老项目时,出现报错 Fatal error: Uncaught Error: Cal ...
- MySQL慢查询日志相关的文件配置和使用。
MySQL慢查询日志提供了超过指定时间阈值的查询信息,为性能优化提供了主要的参考依据,是一个非常实用的功能,MySQL慢查询日志的开启和配置非常简单,可以指定记录的文件(或者表),超过的时间阈值等就可 ...
- mac安装mysql的两种方法(含配置)
1.使用安装包安装mysql 双击打开安装文件 双击pkg文件安装 一路向下,记得保存最后弹出框中的密码(它是你mysql root账号的密码) 正常情况下,安装成功. 此时只是安装成功,但还需要额外 ...
- 如何在PHP7中安装mysql的扩展
相对与PHP5,PHP7的最大变化之一是移除了mysql扩展,推荐使用mysqli或者pdo_mysql,实际上在PHP5.5开始,PHP就着手开始准备弃用mysql扩展,如果你使用mysql扩展,可 ...
- CentOS 安装 MySQL PDO 扩展
yum install php-pdo_mysql sudo service php-fpm restart
- 安装mysql apache php smb
1 SMB LinuX下SMB的配置 使用Smb进行连接的命令: smbclient //192.168.128.1/Share 今天要在LINUX之间以及LINUX与WINDOWS之间互相传送文件, ...
- centos6 安装mysql
如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--Cen ...
- Linux下yum安装MySQL yum安装MySQL指定版本
yum安装MySQL 1. 查看有没有安装过 yum list installed MySQL* (有存在要卸载yum remove MySQL*) rpm -qa | grep my ...
- Linux安装mysql过程(转+完善)
http://blog.csdn.net/jerome_s/article/details/52883234yum 安装MySQL 1. 检查安装情况 查看有没有安装过: ...
随机推荐
- nginx1.14.0版本location路径,多级文件目录配置,root与alias的配置区别
1.多级目录配置 多级目录是指像/html/mypage 等等配置: server { listen 80; server_name localhost; location = /page1/ { # ...
- [洛谷P3966][TJOI2013]单词
题目大意:有$n$个字符串,求每个字符串在所有字符串中出现的次数 题解:$AC$自动机,每个节点被经过时$sz$加一,每一个字符串出现次数为其$fail$树子树$sz$和 卡点:$AC$自动机根节点为 ...
- Centos7 在线安装开发环境 jdk1.8+mysql+tomcat
写在最前 刚刚开始接触Linux,并折腾着在服务器上部署自己的项目,当然作为一个后端开发人员,必不可少的东西肯定是 JDK Mysql Tomcat容器 每天记录一天,每天进步一点点~~ 1.更新系统 ...
- python3-使用requests模拟登录网易云音乐
# -*- coding: utf-8 -*- from Crypto.Cipher import AES import base64 import random import codecs impo ...
- linux设备树的建立过程
为了阐明表示总线.设备和设备驱动程序的各个数据结构之间彼此的关联,它们的注册过程是很有必要的.顺序一定是如下:(1)注册总线---bus_register:(2)注册设备device_register ...
- ArcEngine二次开发中运行出现There is no Spatial Analyst license currently available or enabled.
只需要在许可控件上勾选空间分析功能即可.
- git小结-ms
目录 1.git是什么 2.git怎么工作的 3.git常用命令 4.git提效工具 5.git的技术用语 1.git是什么 git是开源的分布式的版本控制系统,可以有效.高速地处理的项目版本管理.g ...
- CPN tools 帮助文档资料和实例
1.替代变迁 包含有替代变迁的页面叫做父页,当CPN网使用替代变迁的时候,替代变迁所表达的逻辑必须在某一个位置得到实现,实现替代变迁逻辑页面叫做子页或者子网. 将替代变迁相邻的库所叫做槽库所,也即是在 ...
- OpenCV和ffmpeg编码资料分享
本博也是在进行视频转码的学习道路上,也只是菜鸟一枚,收集了大量的资料,想在这和同路人分享一下 在博园里我发表一个JavaCV的随笔,里面介绍了JavaCV这个框架,它整合了OpenCV和ffmpeg等 ...
- IDEA中看Flink 1.9源码时报Sources not found for: org.apache.flink:flink-shaded-hadoop-2:2.4.1-7.0
1.场景 在阅读Flink 1.9源码时,个别类如YarnClientImpl.java只能查看.class文件,想查看对应的.java source文件,点击Download source时,报So ...