docker 安装php7
1 | docker run -d -p 3000:9000 -v /tmmee:/tmmee -v /usr/local/etc/php:/usr/local/etc/php -v /var/lib/mysql:/var/lib/mysql f93723455cd8 |
docker 安装phpfpm, nginx监听3000端口,本地3000端口映射9000端口让他处理php请求(原来服务器是php5.6,生产环境不便在动,通过docker安装php7),结果出错了….
SQLSTATE[HY000] [2002] Connection refuse
解决方法一:
修改php.ini
1 | mysql.default_socket = /tmp/mysql.sock |
/tmp/mysql.sock 是你mysql.sock位置
可以通过find / -name mysql.sock
查找其位置
注意 :此处数据库连接地址填localhost
解决方法二
修改数据库地址为127.0.0.1
思考
MySQL主机127.0.0.1与localhost什么区别呢?
mysql -h 127.0.0.1 的时候,使用TCP/IP连接, mysql server 认为该连接来自于127.0.0.1或者是”localhost.localdomain”
mysql -h localhost 的时候,是不使用TCP/IP连接的,而使用Unix socket;此时,mysql server则认为该client是来自”localhost”
当主机填写为localhost时mysql会采用 unix domain socket连接
当主机填写为127.0.0.1时mysql会采用tcp方式连接
127.0.0.1是内核实现的,一般来说localhost是在/etc/hosts这个文件实现的,你打开这个文件看,头一行就是127.0.0.1 localhost
hostname也可以写在这个文件内,在后面接着写就是,仿照它的格式,前面写ip后面写主机名,中间可以用空格,也可以用tab键隔开,
主机名当然也可以用dns来实现,但是是先查询本地的hosts文件还是先查询dns这个是靠/etc/host.conf文件
小收获
无意间看到的句子,收藏之…
即使你拥有人人羡慕的容貌,博览群书的才学,挥之不尽的财富,也不能证明你的强大,因为心的强大,才是真的强大