php 无法加载mysql的module的时候的配置的解决方案引发的思考
之后看phpinfo() 里 确实也没找到mysql 模块, 之后所谓的解决方案如“将php.ini” 放入C:\Windows 环境变量等不靠谱说法。。。。。
甚至拷贝ext的文件夹的dll 到System32 中等
统统不靠谱 直到看到这篇帖子,我才发现问题
http://www.haosblog.com/index.php?mod=article_read&id=322
“mysql无法找到的原因是mysql的运行库无法找到,打开mysql的安装文件夹,在bin文件夹中找到libmySQL.dll,将它复制到system32文件夹中,让mysql的运行库能在系统中注册,然后重启Apache”
我是在\MySQL\MySQL Server 5.5\lib目录里找到的
实际上在自己配置的时候应该发现不是环境变量或者是没有加载到php.ini 或者没加载到extension的
为什么这么说呢
首先,在Apache 的配置中 已经添加了php的配置路径
同时phpinfo()也显示的加载到了,有兴趣的同学可以试试php.ini 存在和不存在的时候的区别
其次,自己在php.ini里确实配置了extension_dir 的,如果这个东西没意义,那何必在配置文件里有这个选项?之后这里注意一下,他的分隔符和apache 刚好相反 是“\”
之后php 也顺利加载了
所以,其实完全可以避免自己跟着瞎折腾的,结果大意了。
PHP配置成功后phpinfo中找不到mysql
不少新人使用Apache+PHP+MySql配置好PHP环境都会遇到一个问题:mysql无法使用,使用phpinfo()函数获取的信息中也找不到mysql。
网上不少资料都说要把php.ini转移到windows或者system32文件夹中,这是胡扯!如果你把php和php/ext的目录添加到了环境变量中是不需要这么设置的。这么做的原因是Apache会到默认路径中查找配置文件,而没有设置环境变量的话Apache就找不到php.ini了。你可以看看phpinfo()页面中搜索php.ini,php.ini的路径是windows那么就把PHP的路径写入环境变量中,环境变量的设置可上网查找一下,尽量不要将php.ini放入系统文件夹中,对系统盘的操作要越少越好。
mysql无法找到的原因是mysql的运行库无法找到,打开mysql的安装文件夹,在bin文件夹中找到libmySQL.dll,将它复制到system32文件夹中,让mysql的运行库能在系统中注册,然后重启Apache,打开phpinfo()页面,搜索mysql,结果如下图
那么恭喜你,mysql已经能够正常在你的PHP中运行了。
不少新人都会被这个问题困扰,当初我也被它困扰了很久,网上的资料都是说把php.ini复制到系统盘,可是依然无用。这里严重BS一下那些没有实际行动只会复制别人文章的人,不少错误的信息就是被他们扩散,误导了不少新人,严重鄙视!
相关推荐
-
php+mysql大量用户登录解决方案分析
本文实例分析了php+mysql大量用户登录解决方案.分享给大家供大家参考.具体分析如下: 百度.QQ.360等大公司都拥有上亿的用户量,不仅所有子网站都通过一个账号登录,而且还开放用户平台,提供给其他网站使用,这种级别的数据量和访问量,如果不做优化,估计很快就会宕机,这些公司都是一个专门的团队,维护一个注册登录,细节设计的非常优秀,现在粗略谈下他们的设计方案. 大数据的时候,压力不在PHP,主要在MySQL,PHP可以做负载均衡,10台机器抗不住就用20台或者100台,这都不是瓶颈. 但是My
-
php导入大量数据到mysql性能优化技巧
本文实例讲述了php导入大量数据到mysql性能优化技巧.分享给大家供大家参考.具体分析如下: 在mysql中我们结合php把一些文件导入到mysql中,这里就来分享一下我对15000条记录进行导入时分析与优化,需要的朋友可以参考一下. 之前有几篇文章,说了最近tiandi在帮朋友做一个小项目,用于统计电话号码的,每次按需求从数据库里随机生成打包的电话号码,然后不停地让人打这些电话号码推销产品(小小鄙视一下这样的行为).但是朋友要求帮忙,咱也不能不帮啊,是吧.程序两个星期前已经做好,测试完毕交工
-
php调用mysql存储过程实例分析
本文实例分析了php调用mysql存储过程的方法.分享给大家供大家参考.具体分析如下: Mysql存储过程创建语法,代码如下: CREATE PROCEDURE和CREATE FUNCTION : 复制代码 代码如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body CREATE FUNCTION sp_name ([func_parameter[,...]])
-
phpMyAdmin“无法载入 mysql 扩展, 请检查 PHP 配置”问题的解决方案
还有说需要复制到system32下面,一看就是歪招.终于发现有人说到对于 "PHPRC"环境变量的问题!大概是因为它吧--根据我的理解(第一次用PHP[也许是第二次],第二次[也许是第三次]用 phpMyAdmin,更别说XAMPP),PHPRC最重要的作用就是找到php.ini文件,而作为装机狂人的我之前安装过ZEND(虽然没有用过).于是发现果然ZEND设置好了PHPRC环境变量,而XAMPP安装没有修改这个设置.修改之! 等等!在XAMPP面板中重新启动Apache怎么还是不行呀
-
PHP+MYSQL会员系统的登陆即权限判断实现代码
复制代码 代码如下: <?php error_reporting(0); session_start(); //数据库连接 $conn = mysql_connect('localhost', 'root', ''); mysql_select_db('chenkun', $conn); mysql_query('SET NAMES UTF-8'); //定义常量 define('ALL_PS', 'PHP'); function user_shell($uid, $shell, $m_id)
-
PHP查询MySQL大量数据的时候内存占用分析
昨天, 有同事在PHP讨论群里提到, 他做的一个项目由于MySQL查询返回的结果太多(达10万条), 从而导致PHP内存不够用. 所以, 他问, 在执行下面的代码遍历返回的MySQL结果之前, 数据是否已经在内存中了? - 复制代码 代码如下: while ($row = mysql_fetch_assoc($result)) { // ... } 当然, 这种问题有许多优化的方法. 不过, 就这个问题来讲, 我首先想到, MySQL是经典的C/S(Client/Server, 客户端/服务器)
-
php从memcache读取数据再批量写入mysql的方法
本文实例讲述了php从memcache读取数据再批量写入mysql的方法.分享给大家供大家参考.具体分析如下: 用 Memcache 可以缓解 php和数据库压力下面代码是解决高负载下数据库写入瓶颈问题,遇到最实用的:写入ip pv uv的时候,用户达到每分钟几万访问量,要记录这些数据,实时写入数据库必定奔溃. 用以下技术就能解决,还有如用户注册,同一时间断内,大量用户注册,可以缓存后一次性写入到数据库,代码如下: 复制代码 代码如下: public function cldata(){ $me
-
用PHP写的MySQL数据库用户认证系统代码
这两天受朋友的托付,要我帮他写一个使用MySQL数据库的用户认证系统.我当然不好推脱的,只得耗费了一晚上的休息时间,写了个很简单的PHP程序. 用户认证的原理很简单:首先需要用户在页面上填入用户名和密码,当然没注册的用户需要先注册.然后调用数据库搜索是否有相应的用户.如果有就确认,没有则提醒用户先注册.使用PHP来完成这一切很简单,但需要注意的是如果想在以后的页面中都能确认用户身份,使用PHP3我只能想出使用cookie的方法.要想使用session,就只能等待PHP4正式版的发布了! 第一
-
phpMyAdmin链接MySql错误 个人解决方案
装好wamp后在试图用phpMyAdmin链接MySql时出错,报错如下: phpMyAdmin 试图连接到 MySQL 服务器,但服务器拒绝连接.您应该检查 config.inc.php 中的主机.用户名和密码,并且确定这些信息与 MySQL 服务器的管理员所给出的信息一致. 而MySql报错如下: 091224 1:43:18 InnoDB: Starting shutdown... 091224 1:43:19 InnoDB: Shutdown completed; log sequenc
-
php 无法加载mysql的module的时候的配置的解决方案引发的思考
之后看phpinfo() 里 确实也没找到mysql 模块, 之后所谓的解决方案如"将php.ini" 放入C:\Windows 环境变量等不靠谱说法..... 甚至拷贝ext的文件夹的dll 到System32 中等 统统不靠谱 直到看到这篇帖子,我才发现问题 http://www.haosblog.com/index.php?mod=article_read&id=322 "mysql无法找到的原因是mysql的运行库无法找到,打开mysql的安装文件夹,在bin
-
解决vue动态路由异步加载import组件,加载不到module的问题
报错信息应该是这样的 webpackEmptyContext (eval at ./src/store/modules sync recursive (0.js:10), <anonymous>:2:10) 路由信息由后端给出,那么前端需要动态加载路由,同时component的路径也是后端给出,但是动态加载该路径会报错 如: // 假如path = '@/views/user' const com = () => import(path) // 这样会报错哦 const com2 = (
-
使用springboot通过spi机制加载mysql驱动的过程
SPI是一种JDK提供的加载插件的灵活机制,分离了接口与实现,就拿常用的数据库驱动来说,我们只需要在spring系统中引入对应的数据库依赖包(比如mysql-connector-java以及针对oracle的ojdbc6驱动),然后在yml或者properties配置文件中对应的数据源配置就可自动使用对应的sql驱动, 比如mysql的配置: spring: datasource: url: jdbc:mysql://localhost:3306/xxxxx?autoReconnect=true
-
pytorch加载预训练模型与自己模型不匹配的解决方案
pytorch中如果自己搭建网络并且加载别人的与训练模型的话,如果模型和参数不严格匹配,就可能会出问题,接下来记录一下我的解决方法. 两个有序字典找不同 模型的参数和pth文件的参数都是有序字典(OrderedDict),把字典中的键转为列表就可以在for循环里迭代找不同了. model = ResNet18(1) model_dict1 = torch.load('resnet18.pth') model_dict2 = model.state_dict() model_list1 = lis
-
浅谈angular2路由预加载策略
1.问题描述 在没有使路由懒加载的时候,第一次使用的时候加载特别慢,影响用户体验,angular2可以使用loadChildren进行懒加载,第一次使用的时候只会加载需要的模块,其它模块在真正使用的时候才会去加载,这个时候打开浏览器控制台查看js加载的时候,会发现你在使用时候会去加载对应的js,导致第一次点击相应模块的功能时会卡顿一下,后面在使用就不会了,这样还是用户体验不好,接下来告诉你如果使用预加载策略解决这个问题. 2.预加载策略 RouterModule.forRoot的第二个添加了一个
-
AngularJS动态加载模块和依赖的方法分析
本文实例讲述了AngularJS动态加载模块和依赖的方法.分享给大家供大家参考,具体如下: 前言 由于AngularJS是单页面应用框架,在正常的情况下,会在访问页面的时候将所有的CSS.JavaScript文件都加载进来.文件不多的时候,页面启动速度倒不会影响太多.但是一旦文件数太多或者加载的第三方库比较大的时候,就会影响页面启动速度.因此对于应用规模大.文件数比较多或者加载的第三方库比较大的时候,采用动态加载JS或者动态加载模块会极大提升页面的启动速度.本文将介绍如何利用ocLazyLoad
-
React-router中结合webpack实现按需加载实例
简要介绍:在React-router中,暴露了3个接口,如果结合webpack的code splitting,就通过切换路由实现按需加载. 1.webpack的code splitting webpack可以通过一些方法,来实现按需加载,暴露的接口为require.ensure require.ensure(["module-a", "module-b"], function() { var a = require("module-a"); //
-
JDBC数据库连接过程及驱动加载与设计模式详解
首先要导入JDBC的jar包: 接下来,代码: Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段. JDBC连接数据库 • 创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String
-
详解在create-react-app使用less与antd按需加载
使用antd按需加载 使用react-app-rewired对 create-react-app 的默认配置进行自定义 1.yarn add react-app-rewired --dev /* package.json */ "scripts": { - "start": "react-scripts start", + "start": "react-app-rewired start", - &quo
-
浅析node.js的模块加载机制
在node.js中,模块使用CommonJS规范,一个文件是一个模块 node.js中的模块可分为三类 内部模块 - node.js提供的模块如 fs,http,path等 自定模块 - 我们自己写的模块 第三方模块 - 通过npm安装的模块 node.js提供了大量的模块供我们使用,比如 想解析一个文件的路径,可以使用path模块下的相应方法实现: const path = require('path'); //返回目标文件的绝对路径 console.log(path.resolve('./1
随机推荐
- python用ConfigObj读写配置文件的实现代码
- C#简单爬虫案例分享
- perl高级排序,<=>操作符,飞船操作符
- golang基于websocket实现的简易聊天室程序
- js动态生成form 并用ajax方式提交的实现方法
- Visual Studio 2015全英界面切换成中文界面
- Struts2拦截器 关于解决登录的问题
- php+js实现倒计时功能
- MySQL命令行界面中出现字符错误提示的原因及解决方法
- a标签置灰不可点击的实现方法
- 在node中如何使用 ES6
- 分离与继承的思想实现图片上传后的预览功能:ImageUploadView
- jQuery绑定事件方法及区别(bind,click,on,live,one)
- ES6概念 Symbol toString()方法
- DEDECMS TAG伪静态 IIS_rewrite配置方法附rewrite下载
- Android中ScrollView嵌套GridView显示不全解决方法
- Thread、Handler和HandlerThread关系详解
- Android中AutoCompleteTextView与TextWatcher结合小实例
- ASP采集入库生成本地文件的几个函数
- 什么是Internet路由