重置MySQL密码&缺少mysqld.sock文件

时间:2016-06-29 09:06:52

标签: mysql sockets

我正在尝试在自己的计算机上运行本地mysql服务器。我丢失了我最初设置的密码。当我尝试连接到mysql时,出现以下错误:

  

ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)

我因此尝试these steps来重置我的MySQL密码,但行

  

mysql -u root mysql

返回相同的错误消息:

  

ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)

运行命令时

  

mysqladmin -u root -p status   我收到以下消息:   错误:'无法通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock'(2)'

     

检查mysqld是否正在运行并且套接字:'/ var / run / mysqld / mysqld.sock'存在!

我一直在检查,提到的文件(/var/run/mysqld/mysqld.sock)实际上并不存在。我不确定是什么导致了这一点。

我在线尝试了几种解决方案,包括thisthisthisthis,但这些解决方案都不适用于我。我想补充说我的机器上安装了mysql-server。

任何帮助表示赞赏。如果上述陈述有任何混淆,请接受我的道歉。我试图尽可能多地解释发生了什么,但我是一个初学者,我对那里发生的事情毫无头绪。

4 个答案:

答案 0 :(得分:2)

1)使用以下命令停止mysql恶魔进程:

sudo /etc/init.d/mysql stop

2)使用带有此命令的--skip-grant-tables选项启动mysqld恶魔进程

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
  

因为此时您没有检查用户权限,所以最安全   禁用网络。在Dapper中,/ usr / bin / mysqld ...没有用。   但是,mysqld --skip-grant-tables确实。

1)使用此命令启动mysql客户端进程

mysql -u root

2)从mysql提示符执行此命令以便能够更改任何密码

FLUSH PRIVILEGES;

3)然后重置/更新密码

SET PASSWORD FOR root@'localhost' = PASSWORD('password');

4)如果你有一个可以从任何地方连接的mysql root帐户,你也应该这样做:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

一旦收到指示查询成功的消息(一个或多个受影响的行),刷新权限:

FLUSH PRIVILEGES;

然后停止mysqld进程并以经典方式重新启动它:

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

这是从https://help.ubuntu.com/community/MysqlPasswordReset借用的,你也可以检查另一种重置mysql密码的方法。

答案 1 :(得分:1)

看起来你的MySQL服务器根本没有运行。 你能检查一下吗?

service mysql status

您需要尝试重新启动它,并确保可以使用

停止并启动它
service mysql stop
service mysql start

如果您在此处发布任何错误,请

答案 2 :(得分:0)

重新安装mysql-server对我有用。 (我正在使用mysql 5.7)

<table class="table table-bordered">
    <thead>
      <tr>
        <th>ID</th>
        <th>P.Info</th>
        <th>Std Qty</th>
        <th>Components per kit</th>
      </tr>
    </thead>
    <tbody>
      {% for product in products %}
        <tr>
          <td>{{ product.id }}</td>
          <td>{{ product.product_name }}</td>
          {% for i in quantities %}
            {% if forloop.counter == forloop.parentloop.counter %}
                <td id="q{{ forloop.counter }}">{{ i }}</td>
            {% endif %}
          {% endfor %}
      {% endfor %}
          <td>{{ components_perkit }}</td>
        </tr>
    </tbody>
</table>

答案 3 :(得分:0)

第一个杀死用户

sudo pkill -u <user>

然后安装mysql服务器

sudo apt install mysql-server

配置

sudo mysql_secure_installation

进入mysql shell

sudo mysql