在fedora 12下使用自己从源代码编译的mysql使用,安装过程很麻烦,但好在运行正常。
之前使用windows下mysql/phpmyadmin,到linux下,当然也少不了,整个phpmyadmin,包括配置文件都是从windows下直接拷贝来的,但连接数据库总是出错:
#2002 – 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)
连接远程数据库,就是虚拟主机数据库服务器却是没有问题的。使用linux终端连接
mysql -h127.0.0.1 -uroot -p
也没有任何问题。
而ping localhost,返回也是正常的,说明linux知道localhost就是本机的。
[root@localhost www]# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.062 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.077 ms
^C
— localhost ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2697ms
rtt min/avg/max/mdev = 0.062/0.071/0.077/0.011 ms
感觉很怪异,google一下,有这样的解决方案:
要将 config.inc.php 中
$cfg[‘Servers’][$i][‘host’] = ’localhost’;
改成 $cfg[‘Servers’][$i][‘host’] = ‘127.0.0.1’;
还要添加
$cfg[‘Servers’][$i][‘hide_db’] = ‘information_schema’;//使用登陆后看不见information_schema数据库
于是把配置文件里的host改成127.0.0.1,再连接,好了,连接正常。($cfg[‘Servers’][$i][‘hide_db’] = ‘information_schema’;这一句加不加都无所谓,不影响连接数据库)
为什么在linux下localhost就是不能连接呢?查mysql官方文档[参看这里],看到有这样的句话:
如果未指定指定主机名或指定了特殊的主机名localhost,将使用Unix套接字。
Unix套接字默认为/tmp/mysql.sock,而本机并没有配置这样的套接字文件,所以自然是连接失败了。
官方文档确实非常重要,比网上的一般的解决方法都更权威有效得多。
延伸阅读
- 用mysqldumpslow分析mysql的slow query log/my.ini/my.cnf记录耗时查询日志
- mysql分区功能详细介绍,以及实例
- MYSQL EXPLAIN语句的extended 选项
- MySQL数据库查询缓存Query Cache问题详解
- MySQL进程(process)中出现大量locked,问题分析与解决
- Mysql格式化时间DATE_FORMAT/时间格式
- 远程登入MySQL出错问题原因分析及解决办法/无法远程登入MySQL数据库
- MySQL问题和常见错误/mysql官方文档
- MYSQl联合查询效率分析:left join
- MYSQL中删除重复记录的方法
- phpmyadmin报错原因及解决方法:无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。
- 简单命令对mysql数据库的备份与还原
- phpMyAdmin配置:操作栏只显示“浏览,结构,编辑”等图标不显示文字
- phpmyadmin3.x版在windows下的新版本php里日期显示乱码的补丁方案
- phpmyadmin删除“追踪”(就是在表名旁的眼睛图标)/phpmyadmin(v3.3+)追踪功能简介
0 条评论。