mysql本地中127.0.0.1连接不上数据库怎么办

mysql本地中127.0.0.1连接不上数据库怎么办,第1张

首先在本地使用Navicat for MySQL建立一个数据库

在dreamweaver中建立一个PHP格式的网页,方便链接测试。

测试发现,如果无法使用localhost链接mysql数据库就会提示错误信息

如果出现第三步的情况,就需要修改C:\Windows\System32\drivers\etc目录下的hosts文件。

用记事本打开hosts,

找到127.0.0.1 localhost这一行,把这一行的“#”删除,保存。

如果没有这一行,就自己手动添加。

6

保存后,再使用之前的网页测试,

这个时候就可以通过localhost链接的本地的mysql数据库了

解决办法是:

连接数据库的语句中的地址不要写“localhost”,而是改成“127.0.0.1”

或者,在hosts文件中加一行“127.0.0.1 localhost”

分析:这是典型的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进程。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12109353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存