楼主: starive

MySQL 登录问题 ERROR 2002 (HY000)

[复制链接]
论坛徽章:
2
暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47
11#
发表于 2014-10-28 16:38 | 只看该作者
没有权限,修改权限

使用道具 举报

回复
论坛徽章:
12
优秀写手
日期:2014-09-03 06:00:13双鱼座
日期:2015-12-16 10:37:41天蝎座
日期:2015-12-02 14:44:59秀才
日期:2015-11-11 09:58:34ITPUB14周年纪念章
日期:2015-10-26 17:23:44巨蟹座
日期:2015-09-02 14:45:30金牛座
日期:2015-08-25 16:02:53天蝎座
日期:2015-07-21 16:49:04喜羊羊
日期:2015-07-07 16:42:312015年新春福章
日期:2015-03-06 11:59:47
12#
发表于 2014-10-28 17:36 | 只看该作者
看一下ps -ef | grep mysqld输出

使用道具 举报

回复
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08优秀写手
日期:2015-01-13 06:00:15优秀写手
日期:2015-02-12 06:00:142015年新春福章
日期:2015-03-04 14:53:162015年新春福章
日期:2015-03-06 11:58:39
13#
 楼主| 发表于 2014-10-28 18:12 | 只看该作者
fuiou_cary 发表于 2014-10-28 17:36
看一下ps -ef | grep mysqld输出

我采用如下方法解决了,可以正常登陆。
root@*****-VirtualBox:~# mkdir /var/run/mysqld
root@*****-VirtualBox:~# ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock
root@*****-VirtualBox:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.                 
......
......
.......

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+                                    ---->4 个默认的数据库


当我用 127.0.0.1 登陆查看数据库,竟然只有 2 个数据库了,这是为什么?
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
+--------------------+

请教,为什么用localhost登陆会显示 4个完整的数据库,而用 127.0.0.1登陆时,只显示 2 个数据库?



使用道具 举报

回复
论坛徽章:
12
优秀写手
日期:2014-09-03 06:00:13双鱼座
日期:2015-12-16 10:37:41天蝎座
日期:2015-12-02 14:44:59秀才
日期:2015-11-11 09:58:34ITPUB14周年纪念章
日期:2015-10-26 17:23:44巨蟹座
日期:2015-09-02 14:45:30金牛座
日期:2015-08-25 16:02:53天蝎座
日期:2015-07-21 16:49:04喜羊羊
日期:2015-07-07 16:42:312015年新春福章
日期:2015-03-06 11:59:47
14#
发表于 2014-10-29 11:59 | 只看该作者
starive 发表于 2014-10-28 18:12
我采用如下方法解决了,可以正常登陆。
root@*****-VirtualBox:~# mkdir /var/run/mysqld
root@*****-V ...

两个用户权限不一致   localhost是mysql默认的root用户拥有最大的权限   

使用道具 举报

回复
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08优秀写手
日期:2015-01-13 06:00:15优秀写手
日期:2015-02-12 06:00:142015年新春福章
日期:2015-03-04 14:53:162015年新春福章
日期:2015-03-06 11:58:39
15#
 楼主| 发表于 2014-10-29 13:20 | 只看该作者
fuiou_cary 发表于 2014-10-29 11:59
两个用户权限不一致   localhost是mysql默认的root用户拥有最大的权限

虽然采用重建 mysql.sock的方法后,用localhost方法可以登陆进去。但是,这种方法治标不治本,当我重启系统后mysqld.sock就消失了为什么用localhost登陆总是提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

谁能提供解决方案?


谢谢!

使用道具 举报

回复
论坛徽章:
12
优秀写手
日期:2014-09-03 06:00:13双鱼座
日期:2015-12-16 10:37:41天蝎座
日期:2015-12-02 14:44:59秀才
日期:2015-11-11 09:58:34ITPUB14周年纪念章
日期:2015-10-26 17:23:44巨蟹座
日期:2015-09-02 14:45:30金牛座
日期:2015-08-25 16:02:53天蝎座
日期:2015-07-21 16:49:04喜羊羊
日期:2015-07-07 16:42:312015年新春福章
日期:2015-03-06 11:59:47
16#
发表于 2014-10-29 14:58 | 只看该作者
starive 发表于 2014-10-29 13:20
虽然采用重建 mysql.sock的方法后,用localhost方法可以登陆进去。但是,这种方法治标不治本,当我重启系 ...

什么版本的mysql? 可以的话提供下你的配置信息还有你的启动之后的mysql进程输出,就是ps -ef | grep mysqld  看下你的mysql启动参数都是哪些

使用道具 举报

回复
论坛徽章:
12
优秀写手
日期:2014-09-03 06:00:13双鱼座
日期:2015-12-16 10:37:41天蝎座
日期:2015-12-02 14:44:59秀才
日期:2015-11-11 09:58:34ITPUB14周年纪念章
日期:2015-10-26 17:23:44巨蟹座
日期:2015-09-02 14:45:30金牛座
日期:2015-08-25 16:02:53天蝎座
日期:2015-07-21 16:49:04喜羊羊
日期:2015-07-07 16:42:312015年新春福章
日期:2015-03-06 11:59:47
17#
发表于 2014-10-29 15:03 | 只看该作者
starive 发表于 2014-10-28 18:12
我采用如下方法解决了,可以正常登陆。
root@*****-VirtualBox:~# mkdir /var/run/mysqld
root@*****-V ...

重启之前用软连接可以启动的话,你直接mysql -u root -p -S /tmp/mysql.sock应该也是可以的,前提是你mysql服务起来了

使用道具 举报

回复
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08优秀写手
日期:2015-01-13 06:00:15优秀写手
日期:2015-02-12 06:00:142015年新春福章
日期:2015-03-04 14:53:162015年新春福章
日期:2015-03-06 11:58:39
18#
 楼主| 发表于 2014-10-29 15:12 | 只看该作者
fuiou_cary 发表于 2014-10-29 14:58
什么版本的mysql? 可以的话提供下你的配置信息还有你的启动之后的mysql进程输出,就是ps -ef | grep mys ...


ps -ef | grep mysqld 的信息如下:



David@David-VirtualBox:~$ ps -ef | grep mysqld
root       828     1  0 14:25 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/David-VirtualBox.pid
mysql     1033   828  0 14:25 ?        00:00:05 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/David-VirtualBox.err --pid-file=/usr/local/mysql/data/David-VirtualBox.pid
David     2354  2295  0 15:08 pts/1    00:00:00 grep --color=auto mysqld




请问,从上面能看出什么来吗?
跟 用localhost登陆总是提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
有关系吗?

使用道具 举报

回复
论坛徽章:
6
2014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08优秀写手
日期:2015-01-13 06:00:15优秀写手
日期:2015-02-12 06:00:142015年新春福章
日期:2015-03-04 14:53:162015年新春福章
日期:2015-03-06 11:58:39
19#
 楼主| 发表于 2014-10-29 15:20 | 只看该作者
本帖最后由 starive 于 2014-10-29 15:20 编辑
fuiou_cary 发表于 2014-10-29 15:03
重启之前用软连接可以启动的话,你直接mysql -u root -p -S /tmp/mysql.sock应该也是可以的,前提是你mys ...

你太棒了,采用你的方法,可以成功登陆,而且也有正常的 4 个数据库,如图:


我以前都是用  mysql -u root -p 就可以直接登陆,你能不能帮忙想个办法 也用 mysql -u root -p  登陆就可以了,不用加后面的“/tmp/mysql.sock”???

我目前的配置文件信息如下:
# The following options will be passed to all MySQL clients
[client]
#password        = your_password
port                = 3306
#socket          = /var/run/mysqld/mysql.sock
socket                = /tmp/mysql.sock


# The MySQL server
[mysqld]
port                = 3306
#socket          = /var/run/mysqld/mysql.sock
socket                = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data



max_allowed_packet = 16M


[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates


[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M


[mysqlhotcopy]
interactive-timeout





从上面配置文件的信息,可以看出以前我尝试过把 my.cnf里面的 [client] 和 [mysqld] 中的
socket  = /tmp/mysql.sock 改为  socket  = /var/run/mysqld/mysql.sock



但是依然提示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
因此我就该回原样了。


到底怎么办才能用  mysql -u root -p 直接登陆了?????



困扰一周的问题了,请各位高手帮忙解答!!!

使用道具 举报

回复
论坛徽章:
12
优秀写手
日期:2014-09-03 06:00:13双鱼座
日期:2015-12-16 10:37:41天蝎座
日期:2015-12-02 14:44:59秀才
日期:2015-11-11 09:58:34ITPUB14周年纪念章
日期:2015-10-26 17:23:44巨蟹座
日期:2015-09-02 14:45:30金牛座
日期:2015-08-25 16:02:53天蝎座
日期:2015-07-21 16:49:04喜羊羊
日期:2015-07-07 16:42:312015年新春福章
日期:2015-03-06 11:59:47
20#
发表于 2014-10-29 15:21 | 只看该作者
starive 发表于 2014-10-29 15:12
ps -ef | grep mysqld 的信息如下:

提示这个信息我觉得可能是这台主机之前装过的mysql的sock文件在这个目录下面   按照你现在的安装目录和配置,如果直接是/tmp下面的sock文件就直接-S指定/tmp/mysql.sock登录数据库

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表