sqlite3无法在终端运行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlite3无法在终端运行相关的知识,希望对你有一定的参考价值。
参考技术A 首先退出正在运行的所有程序。定位方法:1、首先sqlite登入数据库,查看数据库内容是否正确,是否是替换了数据库文件但进程未重新加载导致。经检查,排除该可能性。
2、其次查看sqlite3源码执行过程中返回的错误,文件打开失败,open一个文件时失败。出现该错误,一般由于进程的文件描述符耗尽导致,找到了怀疑点。
3、查看操作数据库的进程已占用的文件描述符,一般一个进程最大文件描述符为1023个,假设该进程PID为223,则cd/proc/223/fd;ls-l,可以看到该进程占有所有的文件描述,已达到1023个,资源耗尽,导致再次获取文件描述符失败。一般是由于socket创建后未关闭导致泄漏资源。也可以通过lsof(listopenfiles)命令查看进程已占用了多少文件描述符,对系统的监测和排错有很大的帮助。lsof|grepxxx(进程名)/PID(进程号)查看已占用的文件描述符。
4、执行netstat-a查看所有的连接,发现大量redis数据库连接connected状态,基本锁定连接redis时出现资源泄漏。
5、分析测试场景和相关代码,发现的确存在大量的资源泄漏问题。
无法在终端上运行 php/mysql 脚本
【中文标题】无法在终端上运行 php/mysql 脚本【英文标题】:Cant run php/mysql script on terminal 【发布时间】:2011-10-07 09:45:37 【问题描述】:我在这方面度过了最艰难的时期。我通过终端在 php 中做一个简单的选择语句。我可以通过刷新页面在我的浏览器中运行这个脚本就好了。但是当我输入
php test.php
在终端上,它返回
Warning: mysqli_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock)
我不认为脚本本身有任何问题,但我不确定错误消息告诉我什么或我应该怎么做。谢谢1
【问题讨论】:
【参考方案1】:尝试使用主机127.0.0.1
而不是localhost
或将绝对路径传递给mysql.sock
:
$port = '/path/to/mysql.sock';
【讨论】:
以上是关于sqlite3无法在终端运行的主要内容,如果未能解决你的问题,请参考以下文章