当前位置: 首页 > 知识库问答 >
问题:

UNIX套接字文件的mysqld_安全目录'/var/run/mysqld'不存在

金理
2023-03-14

使用mysqld_safe启动mysql server 5.7.17时,出现以下错误occcours。

2017-02-10T17:05:44.870970Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.872874Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-10T17:05:44.874547Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

怎么修?

共有3个答案

莫承运
2023-03-14

在CentOS为我工作:

$ service mysql stop
$ mysqld --skip-grant-tables &
$ mysql -u root mysql

mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

$ service mysql restart
姬俊远
2023-03-14

当我使用代码mysqld\u safe时——跳过授权表

UNIX套接字文件的mysqld_安全目录'/var/run/mysqld'不存在。

$ systemctl stop  mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &

我解决了:

$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld

现在我使用相同的代码mysqld\u safe——跳过授权表

mysqld_使用/var/lib/mysql中的数据库安全地启动mysqld守护程序

如果我使用$mysql-u root我将得到:

服务器版本:5.7.18-0ubuntu0。16.04.1(Ubuntu)

版权所有(c)2000,2017,甲骨文和/或其附属公司。保留所有权利。

Oracle是Oracle公司和/或其关联公司的注册商标。其他名称可能是其各自所有者的商标。

键入“帮助;”或“\h”以获取帮助。键入“\c”以清除当前输入语句。

mysql

现在是更改密码的时间:

mysql> use mysql
mysql> describe user;

读取表信息以完成表和列名您可以关闭此功能,以便使用-A更快地启动

数据库已更改

mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');

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

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

替代方法:

   USE mysql
   UPDATE user SET Password = PASSWORD('newpwd')
   WHERE Host = 'localhost' AND User = 'root';

如果您有一个根帐户,可以从任何地方访问:

 USE mysql
 UPDATE user SET Password = PASSWORD('newpwd')
 WHERE Host = '%' AND User = 'root';`enter code here

现在需要退出mysql并停止/启动

FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

现在再次使用'mysql-u root-p'并使用新密码获取

mysql

张高澹
2023-03-14

奇怪的是,这个目录不是在安装时创建的——您是否手动更改了my中套接字文件的路径。cfg?

您是否已尝试重新启动此服务并尝试创建此目录?

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
 类似资料: