二维码

mysqli_real_connect(): (HY000/2002): No such file or directory

4620 人阅读 | 时间:2018年12月17日 00:16

摘要:刚才升级了LAMP,发现不能通过phpmyadmin访问mysql。报错:#2002-Nosuchfileordirectory—服务器没有响应(或本地服务器的套接字没有正确设置)。mysqli_real_connect():(HY000/2002):Nosuchfileordirectory参考:http://www.codes51.com/article/detail_1996783.html这个错误是由于无法找到mysql.sock文件启动mysql服务并查看mysql

通过phpmyadmin访问mysql报错:

解决问题思路,首先从数据库入手,新建数据库,新建用户并授权访问,

MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):

1.新建用户

  1.1 登录MYSQL:

 @>mysql -u root -p

 @>密码

 1.2 创建用户:

 mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

  这样就创建了一个名为:test 密码为:1234 的用户。

  注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

  1.3 然后登录一下:

  mysql>exit;

  @>mysql -u test -p

  @>输入密码

  mysql>登录成功

 2.为用户授权

  授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 

  2.1 登录MYSQL(有ROOT权限),这里以ROOT身份登录:

  @>mysql -u root -p

  @>密码

  2.2 首先为用户创建一个数据库(testDB):

  mysql>create database testDB;

  2.3 授权test用户拥有testDB数据库的所有权限(某个数据库的所有权限)

   mysql>grant all privileges on testDB.* to test@localhost identified by '1234';

   mysql>flush privileges;//刷新系统权限表

  格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 

  2.4 如果想指定部分权限给一用户,可以这样来写:

  mysql>grant select,update on testDB.* to test@localhost identified by '1234';

  mysql>flush privileges; //刷新系统权限表

  2.5 授权test用户拥有所有数据库的某些权限:   

  mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";

     //test用户对所有数据库都有select,delete,update,create,drop 权限。

  //@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)

 //对localhost授权:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';即可。

 3、解决报错,修改PHP 配置文件

#2002 - No such file or directory — 服务器没有响应(或本地服务器的套接字没有正确设置)。 
mysqli_real_connect(): (HY000/2002): No such file or directory 

这个错误是由于无法找到 mysql.sock 文件

启动mysql服务并查看mysql的socket路径,可以通过mysql命令行 STATUS;

#mysql -v -p
Enter password:
...
mysql> STATUS;
输出:
UNIX socket:/tmp/mysql.sock
...

mysqli_real_connect(): (HY000/2002): No such file or directory

打开php.ini文件中,找到负责数据库连接三种类型的参数:   PHP.ini 文件安装PHP 时候创建,这个需要自己找了我的路径是/usr/local/php/etc/php.ini

pdo_mysql.default_socket= 
mysqli.default_socket = 
mysql.default_socket=

设置三个参数的值是否和mysql的socket值一致。

mysqli_real_connect(): (HY000/2002): No such file or directory

mysqli_real_connect(): (HY000/2002): No such file or directory

然后重启httpd,打开phpmyadmin访问mysql正常。

以上是mysqli_real_connect(): (HY000/2002): No such file or directory的内容,更多 directory connect mysqli such 2002 file real 000HY 的内容,请您使用右上方搜索功能获取相关信息。


©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×