为了账号安全,请及时绑定邮箱和手机立即绑定

mac下php连接mysql主机名为什么不能写localhost ?

mac下php连接mysql主机名为什么不能写localhost ?

PHP
Helenr 2019-03-06 06:37:25
在MAC OS下,用Apache服务器安装网站,或者mysql连接phpMyAdmin,数据库配置文件都必须写成127.0.0.1,如果写成localhost就会报错,是什么问题? Apache hosts文件配置了localhost,通过localhost能访问服务器,只是连mysql数据库只能写127.0.0.1
查看完整描述

6 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

解决方法

错误原因:mysql.sock 文件未生成。

第一步
phpinfo()查看mysql配置信息,查找default_socket关键字。
mysql.default_socket
mysqli.default_socket
pdo_mysql.default_socket
以上三个路径是否都为/tmp/mysql.sock。如果是直接跳到第三步。

第二步
打开php.ini文件,路径/etc/php.ini。找到第一步中的三个配置(一般为空值),添加上路径/tmp/mysql.sock,如:mysql.default_socket = /tmp/mysql.sock
重启mysql服务,重复第一步phhinfo()查看是否修改成功。

https://img1.sycdn.imooc.com//5c8f62b00001187108000083.jpg

第三步
创建my.cnf文件,找到/usr/local/mysql/support-files/my-default.cnf文件。
https://img1.sycdn.imooc.com//5c8f62b10001d6da08000544.jpg

拷贝到/etc目录。重命名为my.cnf,打开查找socket关键字,添加上路径/tmp/mysql.sock

第四步
重启Apachemysql服务,查看/tmp目录下是否有生成mysql.sock.lock文件。

https://img1.sycdn.imooc.com//5c8f62b40001368b08000544.jpg

如果有,登录mysql,成功!

查看完整回答
反对 回复 2019-03-18
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

你的hosts里面没配置localhost

如果有配置过localhost, 那就是这个mysql用户有问题.

mysql的用户格式是 用户名@机器名
在mysql数据库的mysql.user表里面可以查看.

我猜你的用户是 root@127.0.0.1

没有 root@localhost 这个用户.

你要用 root@localhost 登录, 重新创建一个就好了.

查看完整回答
反对 回复 2019-03-18
?
忽然笑

TA贡献1806条经验 获得超5个赞

打开终端,输入命令vi /etc/hosts查看localhost是否指向127.0.0.1,也就是看看是否有这行

127.0.0.1    localhost

没有的话就把这行加上去就行了

查看完整回答
反对 回复 2019-03-18
?
ITMISS

TA贡献1871条经验 获得超8个赞

localhost本身对系统没有任何意义,你需要自己在/etc/hosts里添加一行主机名映射127.0.0.1 localhost,这样系统遇到localhost才会将其解析为127.0.0.1

查看完整回答
反对 回复 2019-03-18
?
慕容3067478

TA贡献1773条经验 获得超3个赞

1、楼上说的都对啦
host里的绑定

127.0.0.1 localhost

2、看一下数据库mysql.user表,里有没有一条Host为localhost的记录,如果没有也是不能使用登录的

3、还是写127.0.0.1好,省去解析的时间,速度更快。

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 757 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信