1.如何修改php.ini

Here is how you grant read/write access to php.ini, modify it, save changes & reload nginx:

1. Navigate to folder containing php.ini: $ cd /etc/php5/fpm

2. Grant read/write access: $ sudo chmod -R ugo+rw php.ini

3. Open php.ini: $ vim php.ini

4. Enter edit mode: $ i

5. Edit stuff

6. Exit edit mode: Press ESC

7. Save & close php.ini: $ :x!

7.1 OPTIONAL: Exit without saving: $ :q

8. Navigate to home (not sure if this is actually necessary): $ cd ~

9. Reload/Restart nginx: $ sudo nginx -s reload

10. Reload/Restart php: $ sudo service php5-fpm restart

2. PDO 连接出问题

YII2进行MYSQL数据库操作时出现Database Exception – yii\db\Exception  SQLSTATE[HY000] [2002] No such file or directory错误的解决方法

在进行数据库操作时出现如下类似错误,实际则是PHP配置文件php.ini中未指定mysql.sock(或mysqld.sock)文件路径导致的PDO无法链接数据库

Database Exception – yii\db\Exception

SQLSTATE[HY000] [2002] No such file or directory

Caused by: PDOException

SQLSTATE[HY000] [2002] No such file or directory

in /var/www/yii2/vendor/yiisoft/yii2/db/Connection.php at line 579

这个是由于 通常我们在参考 教程在 MAC OS LINUX下安装 MYSQL 时,
默认将PHP.ini 中的以下三项留空导致的YII2所需的PDO组建无法找到mysql.sock(或mysqld.sock)文件地址导致的
mysql.default_socket = 
pdo_mysql.default_socket=
mysqli.default_socket =

而没有把另外两个YII 框架需要调用到的模块的default_socket也修改一下

解决方法 就是
vim usr/local/php/etc/php.ini

把以下三个原来空白的值都设置为 /tmp/mysql.sock(或/tmp/mysqld.sock)具体位置请替换成你实际安装mysql数据库时的实际mysql.sock(或mysqld.sock)文件地址
mysql.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket =/tmp/mysql.sock

使用mysqld引擎的数据库应修改为如下设置

mysql.default_socket = /tmp/mysqld.sock
pdo_mysql.default_socket= /tmp/mysqld.sock
mysqli.default_socket =/tmp/mysqld.sock

如果你不知道自己使用的是mysql.sock还是mysqld.sock文件,或者不知道mysql_socket文件的位置,打开phpinfo() 函数信息页面找到如下PHP扩展中MYSQL扩展所在位置,找到里面的MYSQL_SOCKET对应的路径值复制出来即可

mysql

MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 5.6.17
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /tmp/mysqld.sock
MYSQL_INCLUDE -I/usr/local/mysql/include
MYSQL_LIBS -L/usr/local/mysql/lib -lmysqlclient

可以看出我使用的是mysqld.sock 文件,因此我php.ini中关于数据库的配置修改如下:
mysql.default_socket = /tmp/mysqld.sock
pdo_mysql.default_socket= /tmp/mysqld.sock
mysqli.default_socket =/tmp/mysqld.sock

修改完成后 重启apache 或者NGINX下重启php-fpm 即可解决问题(摘取天上星 与您一起探讨互联网乐趣)……

注:实际上Yii2所使用的PDO链接数据库,之修改设定pdo_mysql.default_socket 一项的配置文件路径即可,但考虑到后续使用和其他一些应用场合,就索性连同mysql,mysqli的socket路径一同设置修改了(修改设置路径地址 必须为mysql_socket所在实际文件路径地址,否则将导致PHP无法正常链接使用MYSQL数据库)……

注:如果上述问题还有,查看db连接时是否用了127.0.0.1 如果用了记得改为localhost(f you're using Homestead, your DB_HOST should be set to localhost. The reason why in such case artisan (migrate) cannot connect to database is because you are not executing the commands inside your virtual machine.)

homestead注意事项的更多相关文章

  1. jQuery UI resizable使用注意事项、实时等比例拉伸及你不知道的技巧

    这篇文章总结的是我在使用resizable插件的过程中,遇到的问题及变通应用的奇思妙想. 一.resizable使用注意事项 以下是我在jsfiddle上写的测试demo:http://jsfiddl ...

  2. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  3. TODO:Golang指针使用注意事项

    TODO:Golang指针使用注意事项 先来看简单的例子1: 输出: 1 1 例子2: 输出: 1 3 例子1是使用值传递,Add方法不会做任何改变:例子2是使用指针传递,会改变地址,从而改变地址. ...

  4. app开发外包注意事项,2017最新资讯

    我们见过很多创业者,栽在这app外包上.很多创业者对于app外包这件事情不是特别重视,以为将事情交给app外包公司就完事了,实际上不是的.无论是从选择app外包公司还是签订合同.售后维护等各方面都有许 ...

  5. favicon.ioc使用以及注意事项

    1.效果 2.使用引入方法 2.1 注意事项:(把图标命名为favicon.ico,并且放在根目录下,同时使用Link标签,多重保险) 浏览器默认使用根目录下的favicon.ico 图标(如果你并没 ...

  6. ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  7. 【原】Masonry+UIScrollView的使用注意事项

    [原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...

  8. 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  9. 《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

随机推荐

  1. java二

    一,面向对象 面向对象,似乎是太抽象了点,没人敢拍着胸脯说我面向对象学到了100%,纵然如此,了解面向对象的思想对于学好java等面向对象编程语言有着莫大的好处,因为一通百通,同样是面向对象,等你精通 ...

  2. java内存分配和String类型的深度解析

    [尊重原创文章出自:http://my.oschina.net/xiaohui249/blog/170013] 摘要 从整体上介绍java内存的概念.构成以及分配机制,在此基础上深度解析java中的S ...

  3. MFC创建文件和文件夹

    1.使用PathIsDirectory判断文件夹是否存在需要引用下面头文件: #include "shlwapi.h"#pragma comment(lib,"shlwa ...

  4. HBase的伪分布式安装(原创)

    准备工作: 1)安装了伪分布式hadoop:参照http://blog.csdn.net/zolalad/article/details/11472207 2)修改已安装好的hadoop配置文件: a ...

  5. LinQ的查询操作

    LinQ的高级查询:-------------------在car表格进行练习操作: 一.模糊查询:1.在后台代码:(Contains)List<car>list=con.car.wher ...

  6. caj转pdf

    1,准备工具 福昕阅读器 CAJViewer 2: CAJViewer打开caj文件,选项打印,选择福昕阅读器打印机,开始. 3:等待结束即可 提示:打印时间可能会稍长 请勿乱操作

  7. ping命令

    ping命令能够用于判断一个主机是否可达或者是否存活.它的工作原理就像潜水艇的探测原理一样.该命令通过向目标计算机发送一个数据包,请求目标计算机回送该数据包以表明自己还存活着.同时该命令还能够知道数据 ...

  8. python2.6.6安装Image模块

    python2.6.6安装Image模块1.下载Image模块源码地址:http://www.pythonware.com/products/pil/index.htm2.加压文件#tar zxvf ...

  9. mobx源码解读3

    计算属性 function Todo() { this.id = Math.random() mobx.extendObservable(this, { aaa: 222, bbb: 11, ccc: ...

  10. Winform 获取当前单击的控件名称 和 向窗体添加控件

    Winform如何获取当前单击的控件名称,比如有100个Button 和一个button_Click()的按钮事件 ,分别点击不同按钮后显示所点击的按钮名称?private void button_C ...