在MAC OS
下,用Apache
服务器安装网站,或者mysql
连接phpMyAdmin
,数据库配置文件都必须写成127.0.0.1
,如果写成localhost
就会报错,是什么问题?
Apache hosts文件配置了localhost,通过localhost能访问服务器,只是连mysql数据库
只能写127.0.0.1
在MAC OS
下,用Apache
服务器安装网站,或者mysql
连接phpMyAdmin
,数据库配置文件都必须写成127.0.0.1
,如果写成localhost
就会报错,是什么问题?
Apache hosts文件配置了localhost,通过localhost能访问服务器,只是连mysql数据库
只能写127.0.0.1
你的hosts里面没配置localhost
如果有配置过localhost, 那就是这个mysql用户有问题.
mysql的用户格式是 用户名@机器名
在mysql数据库的mysql.user表里面可以查看.
我猜你的用户是 root@127.0.0.1
没有 root@localhost 这个用户.
你要用 root@localhost 登录, 重新创建一个就好了.
打开终端,输入命令vi /etc/hosts
查看localhost是否指向127.0.0.1,也就是看看是否有这行
127.0.0.1 localhost
没有的话就把这行加上去就行了
localhost
本身对系统没有任何意义,你需要自己在/etc/hosts
里添加一行主机名映射127.0.0.1 localhost
,这样系统遇到localhost
才会将其解析为127.0.0.1
1、楼上说的都对啦
host里的绑定
127.0.0.1 localhost
2、看一下数据库mysql.user表,里有没有一条Host为localhost的记录,如果没有也是不能使用登录的
3、还是写127.0.0.1好,省去解析的时间,速度更快。
5 回答3.2k 阅读✓ 已解决
3 回答3.9k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
解决方法
错误原因:
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()
查看是否修改成功。第三步

创建
my.cnf
文件,找到/usr/local/mysql/support-files/my-default.cnf
文件。拷贝到
/etc
目录。重命名为my.cnf
,打开查找socket
关键字,添加上路径/tmp/mysql.sock
。第四步
重启
Apache
和mysql
服务,查看/tmp目录下是否有生成mysql.sock.lock
文件。如果有,登录
mysql
,成功!