mysqld_safe UNIX套接字文件的目录'/ var / run / mysqld'不存在
在使用mysqld_safe启动mysql服务器5.7.17时,出现以下错误消息。
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.
如何解决它?
这似乎很奇怪,这个目录不是在安装时创build的 – 是否手动更改了my.cfg中套接字文件的path?
你有没有尝试简单地创build这个目录自己,并重新启动服务?
mkdir -p /var/run/mysqld chown mysql:mysql /var/run/mysqld
当我使用代码mysqld_safe --skip-grant-tables &
但我得到错误:
mysqld_safe UNIX套接字文件的目录'/ 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_safe --skip-grant-tables &
获得
mysqld_safe从/ var / lib / mysql数据库启动mysqld守护进程
如果我使用$ mysql -u root
我会得到:
服务器版本:5.7.18-0ubuntu0.16.04.1(Ubuntu)
版权所有(c)2000,2017,Oracle和/或其附属公司。 版权所有。
Oracle是Oracle Corporation和/或其附属公司的注册商标。 其他名称可能是其各自所有者的商标。
input'help' 或'\ h'寻求帮助。 input'\ c'清除当前的input语句。
MySQL的>
现在时间更改密码:
mysql> use mysql mysql> describe user;
阅读表格信息以完成表格和列名称您可以closures此function以使用-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';
如果你有一个可以从任何地方访问的root帐户:
USE mysql UPDATE user SET Password = PASSWORD('newpwd') WHERE Host = '%' AND User = 'root';`enter code here
现在需要quit
mysql并停止/启动
FLUSH PRIVILEGES; sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start
现在再次`mysql -u root -p'并使用新的密码来获取
MySQL的>
如果您的数据库没有任何数据,或者您有另一个数据库来恢复该数据,则可以尝试以下操作。 您将需要知道Ubuntu服务器的root密码,但不知道mysql的root密码。
很可能是我们很多人安装了“mysql_secure_installation”,因为这是最佳做法。 导航到mysql_secure_installation存在的bin目录。 它可以在Ubuntu系统上的/ bin目录中find。 通过重新运行安装程序,系统将提示是否更改根数据库密码。