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进程。

在windows系统可能碰到

错误信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
原因 : mysqld数据库服务没有启动。
检查 :在windows 的任务管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。确认服务已经启动。
处理 :启动mysqld 服务

解决办法

方法一:net start mysql(或者是其他服务名)

方法二:在XP下启动MySQL服务 MySql安装目录:
“d:MySql”进入命令行输入窗口(Dos命令输入)进入“d:MySqlbin”目录下运行“mysqld -u root” 命令。写法:d:MySqlbinmysqld -u root (Enter)运行后在进程管理中有mysql的进程,运行成功(可能需要手动关闭命令窗口)然后在“d:MySqlbin”目录下运行“mysql” 命令写法:d:MySqlbin(Enter)

时间: 2024-08-01 14:13:40

MySQL localhost无法连接数据库怎么办的相关文章

MySQL localhost无法连接数据库解决办法

locahost无法连接mysql数据库. 问题:一台服务器的PHP程序通过localhost地址无法连接数据库,但是如果设置为127.0.0.1则可以正常连接,连接其他数据库服务器也正常.MySQL的权限设置正确,且通过mysql命令行客户端可以正常连接数据库. 分析:这是典型的socket没有正确设置的情况. 连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock).大部分情况下,可以用localhost代表本机127.0.0.1

Java连接mySql—简单JDBC连接数据库

利用JDBC开发数据库 经典应该用框架: 第一步,加载JDBC数据库驱动程序(不同的数据库有不同的数据库驱动,所以在连接数据库之前,需加载驱动) 格式: String driver = "com.mysql.jdbc.Driver"; Class.forName(driver);//加载mysql数据库,用Class.forName("驱动名称")进行加载 第二步,创建数据库连接,将数据库与当前文件连接起来,后面才可以对数据库进行操作 格式: String url

jsp mysql 乱码-jsp连接数据库中文显示乱码

问题描述 jsp连接数据库中文显示乱码 在网页中向mysql添加中文数据,再从数据库中获取此数据并在网页上显示,结果中文显示的是乱码,数据库中显示的也是乱码,请问该怎么解决? 解决方案 request.setCharacterEncoding 解决方案二: 检查jsp和服务器端的编码是否一致,服务器端与数据库安装环境是否一致,安装环境与数据库的编码是否一致(可以通过客户端添加数据,看是否乱码). 解决方案三: 直接弄一个SpringMVC的字符接拦截器,把所有的都编码成UTF-8 解决方案四:

php mysql localhost,127.0.0.1和ip区别_Mysql

一家之言: localhost与127.0.0.1的区别 localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析.看来这个入门问题还有人不清楚,其实这两者是有区别的. no1: localhost也叫local ,正确的解释是:本地服务器127.0.0.1在windows等系统的正确解释是:本机地址(本机服务器) no2: localhot(local)是不经网卡传输!这点很重要,它不受网络防火墙和网卡相

No suitable driver found for jdbc:mysql://localhost:3306/****

今天在做SSH框架整合的时候,碰到了这样一个问题,在做service层测试的时候,hibernate是正常的,但是在用Struts的action层测试的时候出现了这个问题,说明这个问题是在网络连接数据库的时候出现的问题.错误的大概意思是缺少数据库驱动,因此需要修改hibernate配置文件,添加相应的数据库驱动.解决方案如下: 修改hibernate.cfg.xml配置文件,在sessionFactory中添加数据库驱动,本文用的数据库是mysql,因此添加如下代码即可: <session-fa

mysql重装后连接数据库提示1045错误

之前因为没有正常关机 mysql 服务无法正常启动.后来重新安装了之后还是不能进入root账户提示1045错误. 解决方法: 1.停止服务 2.修改my.ini,找到[mysqld],在其下加上一行 skip-grant-tables 3.启动mysql服务. 这样就可以进入了.进入之后修改 mysql库下面的user 表里面的root 密码改为空. 然后去掉 skip-grant-tables 重启mysql. 把之前的库都拷贝到新的数据库路径.网站即可正常访问. 如果还是不行可参考下面方法尝

ubuntu下mysql不能远程连接数据库

MySQL远程访问的命令 格式: mysql -h主机地址 -u用户名 -p用户密码 示例: yanggang@host:~$ mysql -h192.168.1.11 -uroot -p123456 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.11' (111) 出现错误!无法连接远程的MySQL数据库 MySQL远程连接数据库,有两种方式: mysql.sock和TCP/IP,前者比后者连接访问速度更快,但仅

MySQL localhost (10061)解决方法

第一步 删除c:windowns下面的my.ini 第二步 打开c:mysqlbinwinmysqladmin.exe 输入用户名 和密码 第三步 在dos下 输入 mysqld-nt -remove 删除服务 在接着输入 mysqld-nt -install 第四步 输入mysql 启动成功. 其它可参考的方法: 1.看看hosts文件中localhost是不是指向127.0.0.1 2.如果是没启动mysql服务,则可运行net start mysql. 3.一些相关命令: mysqld-n

解决mysql不能远程连接数据库方法

1.登陆mysql数据库       mysql -u root -p    查看user表  代码如下 复制代码 mysql> use mysql; Database changed mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host         | user | password