MySQL通过localhost无法连接数据库的解决
问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也正常。MySQL的权限设置正确,且通过mysql命令行客户端可以正常连接数据库。
分析:这是典型的socket没有正确设置的情况。
连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。当设置为127.0.0.1时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。
解决:首先要看本机MySQL的socket套接字文件在哪里,查看命令是:
mysqld --verbose --help | grep socket
输出结果显示套接字文件的位置,比如:这台服务器显示的是
socket /var/run/mysqld/mysqld.sock
然后修改php的配置文件php.ini与之对应起来就好了。
找到这一项:
mysql.default_socket =
一般来说这一项都是空的,改成:
mysql.default_socket = /var/run/mysqld/mysqld.sock
这里应写上一步查询到的文件,根据你的情况设置。至此php配置就修改好了,如果是CLI(命令行)方式或者CGI方式的话,立即就生效,如果是FASTCGI方式,需要重启一下fastcgi进程。
MySQL通过localhost无法连接数据库的解决的更多相关文章
- java连接数据库的解决方法大全(mysql)
解决方法一:(最重要的一种方法) 你看下my.ini,有无 [mysql] default-character-set=utf8 [client] default-character-set=ut ...
- MYSQL - php 使用 localhost 无法连接数据库
php 使用 localhost 无法连接数据库,而使用127.0.0.1却能连接成功. 可能原因: 系统hosts文件未提供127.0.0.1到localhost的解析.解决方法(以win7系统为例 ...
- 关于php读mysql数据库时出现乱码的解决方法
关于php读mysql数据库时出现乱码的解决方法 php读mysql时,有以下几个地方涉及到了字符集. 1.建立数据库表时指定数据库表的字符集.例如 create table tablename ( ...
- python之MySQL MySQLdb 推荐使用姿势,解决中文乱码
0.目录 2.setup(1) 安装步骤,可以顺带安装mysql administrator和mysql query browser(2) 安装完毕,修改 my.ini(3) 重启 mysql 服务: ...
- MySQL安装+Navicat_Premium(安装+破解)+Navicat_Premium中MySQL的localhost不能正常连接+不能连接Docker启动容器中的MySQL
MySQL安装 安装MySQL 我这里安装的是 MySQL 8.0 Command Line Client 下载+安装 详情见 https://www.cnblogs.com/taopanfeng/p ...
- ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)解决办法
问题:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 很久没用这台电脑的mysql ...
- 关于mysql ERROR 1045 (28000)错误的解决办法
错误情景: 使用Navicat打开mysql的时候弹出错误框 错误代码: ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' ( ...
- CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程
CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程 0 Posted by :小黑 On : 2012 年 9 ...
- blocked because of many connection errors; unblock with 'mysqladmin flush-hosts;MySQL在远程访问时非常慢的解决方法;MySql链接慢的解决方法
一:服务器异常:Host 'xx.xxx.xx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin ...
随机推荐
- exp/imp 多用户导入导出
创建用户 创建三个用户test1,test2,test3及表table1,table2,table3 SQL> create user test1 identified by test1 def ...
- WPF---Xaml中改变ViewModel的值
在开发中遇到实现如下需求的情景:一个输入框,旁边一个清空输入的按钮,当输入框中有内容时显示清空按钮,点击该按钮可以清空输入框内容,当输入框中无内容时隐藏按钮 当然这个需求使用wpf的绑定功能很容易实现 ...
- 发送POST测试请求的若干方法
最近在工作中需要测试发送带Json格式body值的HTTP POST请求.起初,我在Linux环境下使用curl命令去发送请求,但是,在发送的过程中却遇到了一些问题,经过一段时间的摸索,发现了以下几种 ...
- linux下利用shell脚本实现添加crontab任务
本来直接用crontab -e 就可以打开vim,输入要执行的任务保存退出就可以添加任务直接启动运行了.但是今天组长说能不能写个shell不用打开vi就能添加到crontab的. 最先想到的是怎么在s ...
- jumpserver在centos 7上的部署
cd /opt/git clone https://github.com/jumpserver/jumpserver.gitcd jumpservergit checkout master 准备安装: ...
- iOS 应用开发,用户密码存储技术--KeyChain
文/清雪飘香(简书作者)原文链接:http://www.jianshu.com/p/c41525172aee著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 这次的Xcode 事件,让我 ...
- 搭建dnsmasq服务器,局域网内部解析
系统:centos6.5 公司内部需求一台dns server,解析内部域名(该域名不需要在公网上解析) 安装了"bind bind-utils"包,配置里设置转发到外部电信dns ...
- centos7使用docker部署gitlab-ce-zh应用
1.国内拉取镜像比较慢,所以这里采用DaoCloud源. # curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http ...
- C控制语句:分支和跳转
小技巧:程序return前加个getchar();可以让程序停住.%%可以打印使printf()中打印出%号 #include<stdio.h>#define SPACE ''int ma ...
- css命名整理
.container { width: 720px; background: #fafafa; border: 2px dashed #999; padding: 10px; float: left ...