我的问题开始与我不能登录根在我的mysql安装更多。我试图运行mysql没有密码打开…但每当我执行命令时

# mysqld_safe --skip-grant-tables &

我再也拿不回提示了。我试图按照这些说明恢复密码。

屏幕看起来是这样的:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

我没有得到开始输入SQL命令重置密码的提示。

当我按CTRL + C杀死它时,我得到以下消息:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

如果我重试该命令并将其放置足够长的时间,我确实会得到以下一系列消息:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

但如果我尝试以root用户登录,执行以下操作:

# mysql -u root

我得到以下错误消息:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

/var/run/mysqld/mysqld.Sock文件不存在。文件夹有,但文件没有。

此外,我不知道这是否有帮助,但我运行find / name mysqld,它出现了:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

我不知道这是否正常。但我把这些信息也包括进来,以防有用。

我最终决定卸载并重新安装mysql。

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

在按照上面相同的顺序重新安装所有包之后,在phpmyadmin安装期间,我得到了相同的错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

所以我再次尝试卸载/重新安装。这一次,在我卸载包之后,我还手动将所有mysql文件和目录重命名为mysql。在各自的位置都不好。

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

然后我尝试重新安装mysql-server和mysql-client。但我注意到它并没有提示我输入密码。它不是应该要求输入管理员密码吗?


当前回答

对于那些通过Vitess使用MySql的人。

我在vttablet组件收到这个错误,由于语法错误(忘记添加;to end of SQL命令)传递给init_db。在get started docs中作为示例给出的SQL:

apiVersion: v1
kind: Secret
metadata:
  name: my-cluster-config
type: Opaque
stringData:
  users.json: |
    {
      "user": [{
        "UserData": "user",
        "Password": "pass"
      }]
    }
  init_db.sql: |
    # This file is executed immediately after mysql_install_db,
    # to initialize a fresh data directory.
    CREATE DATABASE IF NOT EXISTS my_db <--- No ';' at the end

完整的错误日志:

TabletManager.ReplicationStatus()(on zone1from)错误: net.Dial(/vt/socket/mysql.sock) to local server失败 / vt /套筒/ mysql。Sock: connect:没有这样的文件或目录(errno 2002)

其他回答

你可以找到mysqld。如果您已经安装了mysql-server,请在/var/run/mysqld中插入 通过sudo apt-get安装mysql-server

这一点已经被提到过几次了,但这对我来说立即起了作用:

Service mysql restart

*错误:“不能通过套接字连接到本地MySQL服务器/ var /跑步/ mysqld / mysqld。袜子”(2)“

解决方案

最后卸载并重新安装mysql。**

删除mysql-server 删除mysql客户端 Sudo apt-get remove mysql-common Sudo apt-get删除phpmyadmin

然后重新安装

安装mysql-server-5.6

该操作将额外占用164mb的磁盘空间。

你想继续吗?[Y/n] Y按YES完成安装

...... ……

最后你会得到这些行.... 设置libhtml-template-perl(2.95-1)… 设置mysql-common-5.6 (5.6.16-1~exp1)… 处理libc-bin的触发器(2.19-0ubuntu6) 处理ureadahead(0.100.0-16)的触发器… 然后 root@ubuntu1404:~# mysql -u root -p(每个密码前u 应该使用) 输入密码: 注意:输入的密码需与安装时间一致 mysql的密码(如。root,system,admin,rahul等) 然后输入 使用rahul_db(数据库名);

谢谢。* *

在/etc/mysql/my.cnf目录下找到my.cnf文件 (相应地改变它表示socket的位置)

port            = 3306
socket          = /tmp/mysql.sock

这里是一些特定程序的条目 下面的值假设您至少有32M ram

它的正式名称是[safe_mysqld]。两个版本目前都进行了解析。

[mysqld_safe]
socket          = /tmp/mysql.sock
nice            = 0

我也有同样的问题。在删除和重新安装mysql后,这个问题确实发生了。

注意:您的数据将被删除!!不幸的是,我没有找到一种方法来备份mysql文件时,mysql是坏的(如果你知道这样做的方法,请注意在评论)。 如果你在mysql中的数据对你来说不重要(就像我在尝试在新安装的操作系统中安装mysql时),请使用这种方法。

问题:

是什么导致了这个问题?首先,我使用apt remove重新安装mysql,但这个工作导致mysql错误:

无法通过socket '/var/run/mysqld/mysqld连接到本地MySQL服务器。sock'(2)'——缺少/var/run/mysqld/mysqld.sock

Fix:

然后我使用命令清除重新安装mysql,它工作:

Sudo apt清除mysql*(这将清除你所有的数据!); Sudo apt自动删除 安装mysql-server(添加你需要的应用程序)

完成这些步骤后,只需运行sudo mysql -u root。