mysql_connect(): [2002] No such file or directory
在mac中搭建php的开发环境
1. apach ---- 推荐用MAMP。你只要把你的php文件/项目放入到htdocs(/Applications/MAMP/htdocs)目录下,启动mamp,输入localhost就可以直接看见你这个目录下的所有文件了。--由于这种相对简单,这里不再赘述,如果任何问题,欢迎联系交流。
2. nginx ---- 由于没有已经集成的工具,nginx相对apach的配置相对复杂。比如你需要下载mysql,下载php-fpm,甚至还需要用homebrew来安装。(我下面的说明都是基于homebrew安装的情况)在这里我简单的说明几点需要特别注意的情况:
2.1 nginx的配置
需要说明的是/usr/local/etc/nginx下的conf文件server的配置,fastcgi_param选项,注意当加上$document_root,如下面所示:实际上,下面的$document_root$fastcgi_script_name;是和fastcgi.conf里面的值一致。
server {
listen ;
server_name localhost; //指定你的域名
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /Users/megan/www/; // 指定你项目的路径
index index.html index.htm;
}
#error_page /.html;
# redirect server error pages to the static page /50x.html
#
error_page /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
本文是有mysql引发的,这里就简单的说说mysql的简单命令。
启动 -- mysql.server start
关闭 -- mysql.server stop
重启 -- mysql.server restart
连接 -- mysql -uroot 或者 mysql -uroot -p (这里是密码)
导入数据 -- source ../*.sql
2.3 php-fpm的配置
这玩意儿最郁闷的是我没有找到很好的重启和关闭的命令。比如nginx的启动用sudo nginx,关闭用sudo nginx -s -stop重启用sudo nginx -s reload. 可php-fpm我只会用sudo php-fpm来启动。关闭的方式简直是粗暴。
我首先用ps aux|grep php来查看有那些php进程在运行,然后执行kill php-fpm相关进程。比如下面这样的结果执行(sudo)kill 3870 3871 3872.再查看一次,你会发现这些进程没有了。(如果哪位同仁有更好的办法并能指点迷津,比女子将不胜感激)
[megan@megan:~]$ps aux|grep php
megan 4.6 7.4 ?? S :51AM :40.56 /Applications/zend-eclipse-php/zend-eclipse-php.app/Contents/MacOS/zend-eclipse-php -os macosx -ws cocoa -arch x86 -launcher /Applications/zend-eclipse-php/zend-eclipse-php.app/Contents/MacOS/zend-eclipse-php -name Zend Eclipse for PHP Developers --launcher.library /Applications/zend-eclipse-php/zend-eclipse-php.app/Contents/MacOS//../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.200.v20120522-1813/eclipse_1503.so -startup /Applications/zend-eclipse-php/zend-eclipse-php.app/Contents/MacOS//../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.overrideVmargs -showlocation -launcher /Applications/zend-eclipse-php/zend-eclipse-php.app/Contents/MacOS/zend-eclipse-php -showlocation -data /Users/megan/www -launcher /Applications/zend-eclipse-php/zend-eclipse-php.app/Contents/MacOS/zend-eclipse-php -showlocation -keyring /Users/megan/.eclipse_keyring -showlocation -vm /System/Library/Frameworks/JavaVM.framework -vmargs -Xms128M -Xmx512M -Djava.awt.headless=true -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts -Xdock:icon=../Resources/Eclipse.icns -XX:MaxPermSize=256m
megan 0.4 0.0 s001 S+ :48PM :00.01 grep php
nobody 0.0 0.2 ?? S :57PM :05.74 php-fpm
nobody 0.0 0.2 ?? S :57PM :01.09 php-fpm
root 0.0 0.0 ?? Ss :57PM :00.23 php-fpm
其实这个问题很简单,只需要找到你的mysql.sock 然后回到你的php.ini修改一个配置就好了。主要是下面三行代码。
pdo_mysql.default_socket=/tmp/mysql.sock //如果使用的是zendframework,这个需要配置
// 如果使用的是opencart等并没有使用pdo的需要配置下面两项。
mysql.default_socket = /tmp/mysql.sock mysqli.default_socket =/tmp/mysql.sock
实际上只做了一件事,那就是将mysql.sock配置给default_socket。
其实这里最主要的问题是你怎么找到你的mysql.sock, 怎么找你的php.ini。玩了这么就的mac,除了做iOS开发,无论是玩java还是php还是其他,最郁闷的一件事情是找相关的配置文件。什么whereis,locate,which等都用了个遍,往往还是找不到文件,那种痛苦,不想多说。
找到php.ini最简单的办法--建一个文件,phpinfo()会让世界变得异常美好。
找到mysql.sock -- 你可能会使用mysqladmin viriables 查看mysql所有的参数,你或许发现mysql.sock的路径指向了/tmp/mysql.sock,可是你找不到那个文件,尽管你现实所有隐藏文件你还是看不到这个文件。
| Directive | Local Value | Master Value |
|---|---|---|
| pdo_mysql.default_socket | /var/mysql/mysql.sock | /var/mysql/mysql.sock |
那么你可以执行sudo find / -name mysql.sock 它会告诉你,其实你的mysql.sock在private/tmp/mysql.sock这里。那么你可能会想用下面这行代码来建一个快捷方式。
ln -s /private/tmp/mysql.sock /tmp/mysql.sock
ok,是可以,或许它会提醒你这个文件已经存在了。没关系,不用理会它,尽管你在/tmp里面还是看不见mysql.sock。你只管用就行了。我也不知掉多到哪个我看不见的角落了。总之,有个mysql.sock的快捷方式在/tmp下面给你使用。
来源:http://my.oschina.net/megan/blog/325040
mysql_connect(): [2002] No such file or directory的更多相关文章
- mac 连接mysql提示 Warning: mysqli::real_connect(): (HY000/2002): No such file or directory
mac 连接mysql的时候提示 Warning: mysqli::real_connect(): (HY000/2002): No such file or directory [说明1]MAC下M ...
- Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory解决方法
今天用pdo连接mysql遇到一个奇怪的问题,host设为127.0.0.1可以连接成功,设为localhost就会报如下的错误: PHP Fatal error: Uncaught excepti ...
- [Mac][phpMyAdmin] [2002] No such file or directory
我从phpMyAdmin的官网下载了最新版,将它解压到 /Library/WebServer/Documents 下,然后把文件夹改名 phpmyadmin . 接着输入在浏览器中输入 localho ...
- TP连接数据库报错:SQLSTATE[HY000] [2002] No such file or directory
连接数据库报错:“SQLSTATE[HY000] [2002] No such file or directory”. 出现这个问题的原因是PDO无法找到mysql.sock或者mysqld.soc ...
- 无法登录 MySQL 服务器 mysqli_real_connect() (HY000 2002) No such file or directory
mysqli_real_connect(): (HY000/2002): No such file or directory change localhost to 127.0.0.1 in conf ...
- [PDOException] SQLSTATE[HY000] [2002] No such file or directory
编译安装PHP7之后,在安装mysql之后,用pdo操作数据库的时候,出现了此错误[PDOException] SQLSTATE[HY000] [2002] No such file or direc ...
- laravel 报错SQLSTATE[HY000] [2002] No such file or directory
在mac中执行php artisan migrate时报错 SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from i ...
- Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory
执行下面的代码报错: $pdo = new PDO('mysql:dbname=db_test;host=localhost', 'root', '123456'); PHP Fatal error: ...
- Mysql_connect报告”No such file or directory”错误的解决方法
写了个php脚本单独执行mysql_connect(),发现错误信息居然是“No such file or directory"! 首先确定是mysql_connect()和mysql_pc ...
随机推荐
- 20165322 学习基础及C语言基础调查
学习基础和C语言基础调查 一.技能学习经验 有什么技能比90%的人更好? 说来惭愧,我并不认为自己有什么技能能超过90%的人.我从小喜爱水彩画和推理解谜,在自己一些闲余时间的练习与学习下,应该可以超过 ...
- [SCOI2014]方伯伯运椰子
嘟嘟嘟 01分数规划思维题. 题中要求交通总量不减少,那么如果总量增加的话,总费用就会增加,所以一定不是更优的解.那么总量守恒. 这是不是就想到了网络流?对于每一个节点流入量等于流出量.然后就是很有思 ...
- 【luogu P4137 Rmq Problem / mex】 题解
题目链接:https://www.luogu.org/problemnew/show/P4137 求区间内最大没出现过的自然数 在add时要先判断会不会对当前答案产生影响,如果有就去找下一个答案. # ...
- 在Azure上部署Sqlserver网络访问不了的问题
最近在部署Azure虚拟机的时候,一直访问不了网络数据库,一搜资料才知道,Azure默认是不打开入网规则的,需要手动设置. 在 Windows 防火墙中为数据库引擎的默认实例打开 TCP 端口 在“开 ...
- 使用dva框架的总结
最近的项目是react+dva+atd+webpack的一个后台项目,刚接触dva就感觉很喜欢,很简洁用着很爽. 关于使用redux中的一些问题 1.文件切换问题. redux的项目通常哟啊分为red ...
- CSS 中定位方式有几种,说明他们的意义
1.static 默认定位方式 显示为没有设置定位时的位置 2.fixed(固定定位) 他所相对固定的对象是可视窗口,与其他无关.以浏览器窗口作为参考进行定位 3.relative(相对定位) 元 ...
- EventBus 基础篇
最近在研究RxJava ,突然想起了事件分发另一个强大的框架Eventbus ,并且项目经常用到,特意整理了下. what is Eventbus? 官方的解释为: EventBus is a pub ...
- 如何配置Java环境变量
百度经验 | 百度知道 | 百度首页 | 登录 | 注册 新闻 网页 贴吧 知道 经验 音乐 图片 视频 地图 百科 文库 帮助 发布经验 首页 分类 任务 回享 商城 特色 知道 百度经验 &g ...
- chrome中的network面板,怎么添加method(请求类型)选项.
- Swift_控制流
Swift_控制流 点击查看源码 for-in 循环 //for-in 循环 fileprivate func testForIn() { //直接循环提取内部数据 //[1,5] for index ...