*****@*****-VirtualBox:~$ sudo /etc/init.d/mysql.server status
* MySQL running (3907)
*****@*****-VirtualBox:~$ sudo mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
其实,原本压根就没有这个目录:/var/run/mysqld/mysqld.sock'
在目录 /var/run下面没有 文件夹 mysqld, 自己创建文件夹:mysqld,并把把已经存在的文件地址里链接过去:
ln -s /tmp/mysql.sock /var/run/mysqld/mysql.sock
依然显示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
现在问题有2个:
问题1: error里面的信息提示是:mysqld.sock,但是我在系统中找到的是 mysql.sock,请问这两个是同样一个文件吗?
问题2: 在my.cnf里面 的 socket = /tmp/mysql.sock,跟error里面的目录/var/run/mysqld/ 不一样,是不是这个原因导致的?
各种百度和谷歌去尝试,依然还是这个错误。到底哪里出了问题啊???
请各位大神帮忙,谢谢!
22 个解决方案
#1
我把my.cnf里面的
【client】 和 【mysqld】
分别修改为:
socket = /var/run/mysqld/mysql.sock
依然显示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
【client】 和 【mysqld】
分别修改为:
socket = /var/run/mysqld/mysql.sock
依然显示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
#2
既然用 mysql -u root -p 连接不上去,那我就尝试用:
mysql -h 127.0.0.1
成功了,如下:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.07 sec)
但是有个问题:
一般最开始登陆进入mysql后,都会默认有 4 个数据库,分别是:
information_schema
mysql
performation_schema
test
但是我用 mysql -h 127.0.0.1 登陆进去后发现,只有上面的 2 个数据库:
information_schema |
| test
这是为什么啦?到底是怎么回事? 谁能帮忙解答下?
mysql -h 127.0.0.1
成功了,如下:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.07 sec)
但是有个问题:
一般最开始登陆进入mysql后,都会默认有 4 个数据库,分别是:
information_schema
mysql
performation_schema
test
但是我用 mysql -h 127.0.0.1 登陆进去后发现,只有上面的 2 个数据库:
information_schema |
| test
这是为什么啦?到底是怎么回事? 谁能帮忙解答下?
#3
mysqld.sock是mysql启动以后自动生成的文件,关闭MySQL服务后,这个文件又会被删除。如果MySQL启动异常,就有可能不生成这个文件,登录的时候就会出现你这个错误。
你看看MySQL的错误日志里有没有什么异常信息,MySQL真的正常启动了吗?
你看看MySQL的错误日志里有没有什么异常信息,MySQL真的正常启动了吗?
#4
错误日志内容如下:
141028 16:09:46 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
141028 16:09:46 [Note] Event Scheduler: Purging the queue. 0 events
141028 16:09:46 InnoDB: Starting shutdown...
141028 16:09:47 InnoDB: Shutdown completed; log sequence number 1595675
141028 16:09:47 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
141028 16:09:47 mysqld_safe mysqld from pid file /usr/local/mysql/data/gaoyu-Vir
tualBox.pid ended
141028 16:13:08 mysqld_safe Starting mysqld daemon with databases from /usr/loca
l/mysql/data
141028 16:13:08 [Note] Plugin 'FEDERATED' is disabled.
141028 16:13:08 InnoDB: The InnoDB memory heap is disabled
141028 16:13:08 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
141028 16:13:08 InnoDB: Compressed tables use zlib 1.2.3
141028 16:13:08 InnoDB: Using Linux native AIO
141028 16:13:08 InnoDB: Initializing buffer pool, size = 128.0M
141028 16:13:08 InnoDB: Completed initialization of buffer pool
141028 16:13:09 InnoDB: highest supported file format is Barracuda.
141028 16:13:09 InnoDB: Waiting for the background threads to start
141028 16:13:10 InnoDB: 5.5.39 started; log sequence number 1595675
141028 16:13:10 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 0 MySQL Community Server (G
PL)
141028 16:32:28 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
141028 16:32:28 InnoDB: Starting shutdown...
141028 16:32:29 InnoDB: Shutdown completed; log sequence number 1595675
141028 16:32:29 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
141028 16:32:29 mysqld_safe mysqld from pid file /usr/local/mysql/data/gaoyu-Vir
tualBox.pid ended
141028 16:33:00 mysqld_safe Starting mysqld daemon with databases from /usr/loca
l/mysql/data
141028 16:33:01 [Note] Plugin 'FEDERATED' is disabled.
141028 16:33:01 InnoDB: The InnoDB memory heap is disabled
141028 16:33:01 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
141028 16:33:01 InnoDB: Compressed tables use zlib 1.2.3
141028 16:33:01 InnoDB: Using Linux native AIO
141028 16:33:01 InnoDB: Initializing buffer pool, size = 128.0M
141028 16:33:02 InnoDB: Completed initialization of buffer pool
141028 16:33:02 InnoDB: highest supported file format is Barracuda.
141028 16:33:02 InnoDB: Waiting for the background threads to start
141028 16:33:03 InnoDB: 5.5.39 started; log sequence number 1595675
141028 16:33:03 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
141028 16:33:03 [Note] - '0.0.0.0' resolves to '0.0.0.0';
141028 16:33:03 [Note] Server socket created on IP: '0.0.0.0'.
141028 16:33:03 [Note] Event Scheduler: Loaded 0 events
141028 16:33:03 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server
(GPL)
141028 17:06:23 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
141028 17:06:23 [Note] Event Scheduler: Purging the queue. 0 events
141028 17:06:23 InnoDB: Starting shutdown...
141028 17:06:24 InnoDB: Shutdown completed; log sequence number 1595675
141028 17:06:24 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
141028 17:06:24 mysqld_safe mysqld from pid file /usr/local/mysql/data/gaoyu-Vir
tualBox.pid ended
141028 17:06:54 mysqld_safe Starting mysqld daemon with databases from /usr/loca
l/mysql/data
141028 17:06:55 [Note] Plugin 'FEDERATED' is disabled.
141028 17:06:55 InnoDB: The InnoDB memory heap is disabled
141028 17:06:55 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
141028 17:06:55 InnoDB: Compressed tables use zlib 1.2.3
141028 17:06:55 InnoDB: Using Linux native AIO
141028 17:06:55 InnoDB: Initializing buffer pool, size = 128.0M
141028 17:06:55 InnoDB: Completed initialization of buffer pool
141028 17:06:55 InnoDB: highest supported file format is Barracuda.
141028 17:06:56 InnoDB: Waiting for the background threads to start
141028 17:06:57 InnoDB: 5.5.39 started; log sequence number 1595675
141028 17:06:57 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
141028 17:06:57 [Note] - '0.0.0.0' resolves to '0.0.0.0';
141028 17:06:57 [Note] Server socket created on IP: '0.0.0.0'.
141028 17:06:57 [Note] Event Scheduler: Loaded 0 events
141028 17:06:57 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server
(GPL)
root@gaoyu-VirtualBox:~# tail /usr/local/mysql/data/gaoyu-VirtualBox.err
141028 17:06:55 InnoDB: Completed initialization of buffer pool
141028 17:06:55 InnoDB: highest supported file format is Barracuda.
141028 17:06:56 InnoDB: Waiting for the background threads to start
141028 17:06:57 InnoDB: 5.5.39 started; log sequence number 1595675
141028 17:06:57 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
141028 17:06:57 [Note] - '0.0.0.0' resolves to '0.0.0.0';
141028 17:06:57 [Note] Server socket created on IP: '0.0.0.0'.
141028 17:06:57 [Note] Event Scheduler: Loaded 0 events
141028 17:06:57 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
没有任何异常信息。
我发现 用 127.0.0.1 能正常登陆,但是用 root 或者其他用户都无法登陆并且提示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#5
1. 第一个问题你可以修改你MYSQLD 的socket默认路径
2. 权限问题,root@127.0.0.1没有管理权限,通过root@localhost登录给这个账号grant需要的权限就可以了
2. 权限问题,root@127.0.0.1没有管理权限,通过root@localhost登录给这个账号grant需要的权限就可以了
#6
1. 第一个问题你可以修改你MYSQLD 的socket默认路径
回复:我修改过了,还是提示原来同样的错误
2. 权限问题,root@127.0.0.1没有管理权限,通过root@localhost登录给这个账号grant需要的权限就可以了
回复:现在的问题是这样的:
我采用如下方法( 重新创建mysqld.sock)解决了,可以正常登陆。
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 个数据库?
而且 这种方法治标不治本,当我重启系统后mysqld.sock就消失了。 为什么用localhost登陆总是提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#7
我想是不是 有多个mysql实例?
#8
你改完有重启过mysql吗?
#9
每次改完配置文件都会重启机器的。
郁闷,头疼啊!!!
#10
localhost和127.0.0.1似乎被MySQL认为是两个不同的访问地址,你要看一下你账户的访问权限:
用localhost登录,先看看都有那些用户可以从什么地址访问
然后再看看访问权限,比如
既然localhost可以看到四张表,那么说明数据库数据没有问题,剩下的原因应该就是权限不同导致看到的表不同
用localhost登录,先看看都有那些用户可以从什么地址访问
SELECT `user`, `host` FROM `mysql`.`user`;
然后再看看访问权限,比如
SHOW GRANTS FOR 'root'@'localhost';
既然localhost可以看到四张表,那么说明数据库数据没有问题,剩下的原因应该就是权限不同导致看到的表不同
#11
其实,我在 6 楼的方法(重新创建mysqld.sock),这种方法治标不治本,当我重启系统后mysqld.sock就消失了,我又需要重新建立mysql.sock 。 为什么用localhost登陆总是提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#12
现在问题有2个:
问题1: error里面的信息提示是:mysqld.sock,但是我在系统中找到的是 mysql.sock,请问这两个是同样一个文件吗?
问题2: 在my.cnf里面 的 socket = /tmp/mysql.sock,跟error里面的目录/var/run/mysqld/ 不一样,是不是这个原因导致的?
终于看到关键信息了
其实你自己已经找到文件原因了
mysql需要通过sock文件来连接服务器,你mysqld字段的sock文件和client段的文件名不一样
所以mysql认为是其他实例的sock文件,自然就去默认路径去寻找了,默认路径就是 /var/run/mysqld/mysql.sock
LZ你这是误导大伙,把两个修改一样就可以了
问题1: error里面的信息提示是:mysqld.sock,但是我在系统中找到的是 mysql.sock,请问这两个是同样一个文件吗?
问题2: 在my.cnf里面 的 socket = /tmp/mysql.sock,跟error里面的目录/var/run/mysqld/ 不一样,是不是这个原因导致的?
终于看到关键信息了
其实你自己已经找到文件原因了
mysql需要通过sock文件来连接服务器,你mysqld字段的sock文件和client段的文件名不一样
所以mysql认为是其他实例的sock文件,自然就去默认路径去寻找了,默认路径就是 /var/run/mysqld/mysql.sock
LZ你这是误导大伙,把两个修改一样就可以了
#13
没有误导大家, 你都没有看到 我的 my.cnf文件内容,如何知道mysqld字段的sock文件和client段的文件名不一样!!!
下面是my.cnf文件 部分内容:
#14
你这样配置还有问题吗?
如果有你确定你MYSQL用的是这个配置文件
如果有你确定你MYSQL用的是这个配置文件
#15
我已经用 mysql -u root -p -S /tmp/mysql.sock 解决了。
但是,能不能不加后缀“mysql.sock” 就能正常登陆,即采用 mysql -u root -p 就能登陆进去?
#16
这种方式也可以,但是你启动mysql的时候加上sock参数而且sock参数的目录要与my.cnf里面的mysql.sock路径保值一致。
#17
我想是不是 有多个mysql实例?
我已经用 mysql -u root -p -S /tmp/mysql.sock 解决了。
但是,能不能不加后缀“mysql.sock” 就能正常登陆,即采用 mysql -u root -p 就能登陆进去?
这种方式也可以,但是你启动mysql的时候加上sock参数而且sock参数的目录要与my.cnf里面的mysql.sock路径保值一致。
我用 mysql -u root -p 无法登陆,因为会一直报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#18
确实比较奇怪
难道是对'/var/run/mysqld文件夹没有权限?
难道是对'/var/run/mysqld文件夹没有权限?
#19
确实比较奇怪
难道是对'/var/run/mysqld文件夹没有权限?
事实上,根本就没有文件夹 mysqld,
每次我建立文件夹 mysqld,重启系统后这个文件夹mysqld就会消失。
#20
我的mysql也出现过类似的问题,不过我的已经弄好了.
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysql_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysql_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
#21
我的mysql也出现过类似的问题,不过我的已经弄好了.
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysqld_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysqld_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
#22
自启动和登陆问题:
在/etc/rc.local文件里添加以下几行:
mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
/etc/init.d/mysqld restart(先将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysql)
重启即可完成。
在/etc/rc.local文件里添加以下几行:
mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
/etc/init.d/mysqld restart(先将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysql)
重启即可完成。
#1
我把my.cnf里面的
【client】 和 【mysqld】
分别修改为:
socket = /var/run/mysqld/mysql.sock
依然显示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
【client】 和 【mysqld】
分别修改为:
socket = /var/run/mysqld/mysql.sock
依然显示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
#2
既然用 mysql -u root -p 连接不上去,那我就尝试用:
mysql -h 127.0.0.1
成功了,如下:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.07 sec)
但是有个问题:
一般最开始登陆进入mysql后,都会默认有 4 个数据库,分别是:
information_schema
mysql
performation_schema
test
但是我用 mysql -h 127.0.0.1 登陆进去后发现,只有上面的 2 个数据库:
information_schema |
| test
这是为什么啦?到底是怎么回事? 谁能帮忙解答下?
mysql -h 127.0.0.1
成功了,如下:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.07 sec)
但是有个问题:
一般最开始登陆进入mysql后,都会默认有 4 个数据库,分别是:
information_schema
mysql
performation_schema
test
但是我用 mysql -h 127.0.0.1 登陆进去后发现,只有上面的 2 个数据库:
information_schema |
| test
这是为什么啦?到底是怎么回事? 谁能帮忙解答下?
#3
mysqld.sock是mysql启动以后自动生成的文件,关闭MySQL服务后,这个文件又会被删除。如果MySQL启动异常,就有可能不生成这个文件,登录的时候就会出现你这个错误。
你看看MySQL的错误日志里有没有什么异常信息,MySQL真的正常启动了吗?
你看看MySQL的错误日志里有没有什么异常信息,MySQL真的正常启动了吗?
#4
mysqld.sock是mysql启动以后自动生成的文件,关闭MySQL服务后,这个文件又会被删除。如果MySQL启动异常,就有可能不生成这个文件,登录的时候就会出现你这个错误。
你看看MySQL的错误日志里有没有什么异常信息,MySQL真的正常启动了吗?
错误日志内容如下:
141028 16:09:46 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
141028 16:09:46 [Note] Event Scheduler: Purging the queue. 0 events
141028 16:09:46 InnoDB: Starting shutdown...
141028 16:09:47 InnoDB: Shutdown completed; log sequence number 1595675
141028 16:09:47 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
141028 16:09:47 mysqld_safe mysqld from pid file /usr/local/mysql/data/gaoyu-Vir
tualBox.pid ended
141028 16:13:08 mysqld_safe Starting mysqld daemon with databases from /usr/loca
l/mysql/data
141028 16:13:08 [Note] Plugin 'FEDERATED' is disabled.
141028 16:13:08 InnoDB: The InnoDB memory heap is disabled
141028 16:13:08 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
141028 16:13:08 InnoDB: Compressed tables use zlib 1.2.3
141028 16:13:08 InnoDB: Using Linux native AIO
141028 16:13:08 InnoDB: Initializing buffer pool, size = 128.0M
141028 16:13:08 InnoDB: Completed initialization of buffer pool
141028 16:13:09 InnoDB: highest supported file format is Barracuda.
141028 16:13:09 InnoDB: Waiting for the background threads to start
141028 16:13:10 InnoDB: 5.5.39 started; log sequence number 1595675
141028 16:13:10 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 0 MySQL Community Server (G
PL)
141028 16:32:28 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
141028 16:32:28 InnoDB: Starting shutdown...
141028 16:32:29 InnoDB: Shutdown completed; log sequence number 1595675
141028 16:32:29 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
141028 16:32:29 mysqld_safe mysqld from pid file /usr/local/mysql/data/gaoyu-Vir
tualBox.pid ended
141028 16:33:00 mysqld_safe Starting mysqld daemon with databases from /usr/loca
l/mysql/data
141028 16:33:01 [Note] Plugin 'FEDERATED' is disabled.
141028 16:33:01 InnoDB: The InnoDB memory heap is disabled
141028 16:33:01 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
141028 16:33:01 InnoDB: Compressed tables use zlib 1.2.3
141028 16:33:01 InnoDB: Using Linux native AIO
141028 16:33:01 InnoDB: Initializing buffer pool, size = 128.0M
141028 16:33:02 InnoDB: Completed initialization of buffer pool
141028 16:33:02 InnoDB: highest supported file format is Barracuda.
141028 16:33:02 InnoDB: Waiting for the background threads to start
141028 16:33:03 InnoDB: 5.5.39 started; log sequence number 1595675
141028 16:33:03 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
141028 16:33:03 [Note] - '0.0.0.0' resolves to '0.0.0.0';
141028 16:33:03 [Note] Server socket created on IP: '0.0.0.0'.
141028 16:33:03 [Note] Event Scheduler: Loaded 0 events
141028 16:33:03 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server
(GPL)
141028 17:06:23 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
141028 17:06:23 [Note] Event Scheduler: Purging the queue. 0 events
141028 17:06:23 InnoDB: Starting shutdown...
141028 17:06:24 InnoDB: Shutdown completed; log sequence number 1595675
141028 17:06:24 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
141028 17:06:24 mysqld_safe mysqld from pid file /usr/local/mysql/data/gaoyu-Vir
tualBox.pid ended
141028 17:06:54 mysqld_safe Starting mysqld daemon with databases from /usr/loca
l/mysql/data
141028 17:06:55 [Note] Plugin 'FEDERATED' is disabled.
141028 17:06:55 InnoDB: The InnoDB memory heap is disabled
141028 17:06:55 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
141028 17:06:55 InnoDB: Compressed tables use zlib 1.2.3
141028 17:06:55 InnoDB: Using Linux native AIO
141028 17:06:55 InnoDB: Initializing buffer pool, size = 128.0M
141028 17:06:55 InnoDB: Completed initialization of buffer pool
141028 17:06:55 InnoDB: highest supported file format is Barracuda.
141028 17:06:56 InnoDB: Waiting for the background threads to start
141028 17:06:57 InnoDB: 5.5.39 started; log sequence number 1595675
141028 17:06:57 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
141028 17:06:57 [Note] - '0.0.0.0' resolves to '0.0.0.0';
141028 17:06:57 [Note] Server socket created on IP: '0.0.0.0'.
141028 17:06:57 [Note] Event Scheduler: Loaded 0 events
141028 17:06:57 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server
(GPL)
root@gaoyu-VirtualBox:~# tail /usr/local/mysql/data/gaoyu-VirtualBox.err
141028 17:06:55 InnoDB: Completed initialization of buffer pool
141028 17:06:55 InnoDB: highest supported file format is Barracuda.
141028 17:06:56 InnoDB: Waiting for the background threads to start
141028 17:06:57 InnoDB: 5.5.39 started; log sequence number 1595675
141028 17:06:57 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
141028 17:06:57 [Note] - '0.0.0.0' resolves to '0.0.0.0';
141028 17:06:57 [Note] Server socket created on IP: '0.0.0.0'.
141028 17:06:57 [Note] Event Scheduler: Loaded 0 events
141028 17:06:57 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.5.39' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
没有任何异常信息。
我发现 用 127.0.0.1 能正常登陆,但是用 root 或者其他用户都无法登陆并且提示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#5
1. 第一个问题你可以修改你MYSQLD 的socket默认路径
2. 权限问题,root@127.0.0.1没有管理权限,通过root@localhost登录给这个账号grant需要的权限就可以了
2. 权限问题,root@127.0.0.1没有管理权限,通过root@localhost登录给这个账号grant需要的权限就可以了
#6
1. 第一个问题你可以修改你MYSQLD 的socket默认路径
2. 权限问题,root@127.0.0.1没有管理权限,通过root@localhost登录给这个账号grant需要的权限就可以了
1. 第一个问题你可以修改你MYSQLD 的socket默认路径
回复:我修改过了,还是提示原来同样的错误
2. 权限问题,root@127.0.0.1没有管理权限,通过root@localhost登录给这个账号grant需要的权限就可以了
回复:现在的问题是这样的:
我采用如下方法( 重新创建mysqld.sock)解决了,可以正常登陆。
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 个数据库?
而且 这种方法治标不治本,当我重启系统后mysqld.sock就消失了。 为什么用localhost登陆总是提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#7
我想是不是 有多个mysql实例?
#8
你改完有重启过mysql吗?
#9
你改完有重启过mysql吗?
每次改完配置文件都会重启机器的。
郁闷,头疼啊!!!
#10
localhost和127.0.0.1似乎被MySQL认为是两个不同的访问地址,你要看一下你账户的访问权限:
用localhost登录,先看看都有那些用户可以从什么地址访问
然后再看看访问权限,比如
既然localhost可以看到四张表,那么说明数据库数据没有问题,剩下的原因应该就是权限不同导致看到的表不同
用localhost登录,先看看都有那些用户可以从什么地址访问
SELECT `user`, `host` FROM `mysql`.`user`;
然后再看看访问权限,比如
SHOW GRANTS FOR 'root'@'localhost';
既然localhost可以看到四张表,那么说明数据库数据没有问题,剩下的原因应该就是权限不同导致看到的表不同
#11
localhost和127.0.0.1似乎被MySQL认为是两个不同的访问地址,你要看一下你账户的访问权限:
用localhost登录,先看看都有那些用户可以从什么地址访问SELECT `user`, `host` FROM `mysql`.`user`;
然后再看看访问权限,比如SHOW GRANTS FOR 'root'@'localhost';
既然localhost可以看到四张表,那么说明数据库数据没有问题,剩下的原因应该就是权限不同导致看到的表不同
其实,我在 6 楼的方法(重新创建mysqld.sock),这种方法治标不治本,当我重启系统后mysqld.sock就消失了,我又需要重新建立mysql.sock 。 为什么用localhost登陆总是提示:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#12
现在问题有2个:
问题1: error里面的信息提示是:mysqld.sock,但是我在系统中找到的是 mysql.sock,请问这两个是同样一个文件吗?
问题2: 在my.cnf里面 的 socket = /tmp/mysql.sock,跟error里面的目录/var/run/mysqld/ 不一样,是不是这个原因导致的?
终于看到关键信息了
其实你自己已经找到文件原因了
mysql需要通过sock文件来连接服务器,你mysqld字段的sock文件和client段的文件名不一样
所以mysql认为是其他实例的sock文件,自然就去默认路径去寻找了,默认路径就是 /var/run/mysqld/mysql.sock
LZ你这是误导大伙,把两个修改一样就可以了
问题1: error里面的信息提示是:mysqld.sock,但是我在系统中找到的是 mysql.sock,请问这两个是同样一个文件吗?
问题2: 在my.cnf里面 的 socket = /tmp/mysql.sock,跟error里面的目录/var/run/mysqld/ 不一样,是不是这个原因导致的?
终于看到关键信息了
其实你自己已经找到文件原因了
mysql需要通过sock文件来连接服务器,你mysqld字段的sock文件和client段的文件名不一样
所以mysql认为是其他实例的sock文件,自然就去默认路径去寻找了,默认路径就是 /var/run/mysqld/mysql.sock
LZ你这是误导大伙,把两个修改一样就可以了
#13
现在问题有2个:
问题1: error里面的信息提示是:mysqld.sock,但是我在系统中找到的是 mysql.sock,请问这两个是同样一个文件吗?
问题2: 在my.cnf里面 的 socket = /tmp/mysql.sock,跟error里面的目录/var/run/mysqld/ 不一样,是不是这个原因导致的?
终于看到关键信息了
其实你自己已经找到文件原因了
mysql需要通过sock文件来连接服务器,你mysqld字段的sock文件和client段的文件名不一样
所以mysql认为是其他实例的sock文件,自然就去默认路径去寻找了,默认路径就是 /var/run/mysqld/mysql.sock
LZ你这是误导大伙,把两个修改一样就可以了
没有误导大家, 你都没有看到 我的 my.cnf文件内容,如何知道mysqld字段的sock文件和client段的文件名不一样!!!
下面是my.cnf文件 部分内容:
#14
你这样配置还有问题吗?
如果有你确定你MYSQL用的是这个配置文件
如果有你确定你MYSQL用的是这个配置文件
#15
我想是不是 有多个mysql实例?
我已经用 mysql -u root -p -S /tmp/mysql.sock 解决了。
但是,能不能不加后缀“mysql.sock” 就能正常登陆,即采用 mysql -u root -p 就能登陆进去?
#16
我想是不是 有多个mysql实例?
我已经用 mysql -u root -p -S /tmp/mysql.sock 解决了。
但是,能不能不加后缀“mysql.sock” 就能正常登陆,即采用 mysql -u root -p 就能登陆进去?
这种方式也可以,但是你启动mysql的时候加上sock参数而且sock参数的目录要与my.cnf里面的mysql.sock路径保值一致。
#17
我想是不是 有多个mysql实例?
我已经用 mysql -u root -p -S /tmp/mysql.sock 解决了。
但是,能不能不加后缀“mysql.sock” 就能正常登陆,即采用 mysql -u root -p 就能登陆进去?
这种方式也可以,但是你启动mysql的时候加上sock参数而且sock参数的目录要与my.cnf里面的mysql.sock路径保值一致。
我用 mysql -u root -p 无法登陆,因为会一直报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
#18
确实比较奇怪
难道是对'/var/run/mysqld文件夹没有权限?
难道是对'/var/run/mysqld文件夹没有权限?
#19
确实比较奇怪
难道是对'/var/run/mysqld文件夹没有权限?
事实上,根本就没有文件夹 mysqld,
每次我建立文件夹 mysqld,重启系统后这个文件夹mysqld就会消失。
#20
我的mysql也出现过类似的问题,不过我的已经弄好了.
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysql_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysql_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
#21
我的mysql也出现过类似的问题,不过我的已经弄好了.
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysqld_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
出现的问题是:修改了/etc/mysql/mysql.conf.d文件夹里的mysql_safe_syslog.cnf文件
正确地做法是不要在mysql_safe_syslog.cnf中的[mysqld_safe]下面添加任何自定义语句,只留下默认语句
[mysqld_safe]
syslog
即可...
可能你的问题不是这种情况导致的,但也希望对你有所帮助
#22
自启动和登陆问题:
在/etc/rc.local文件里添加以下几行:
mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
/etc/init.d/mysqld restart(先将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysql)
重启即可完成。
在/etc/rc.local文件里添加以下几行:
mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
/etc/init.d/mysqld restart(先将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysql)
重启即可完成。