首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu16.04上的Mysql :不能以root身份登录,不能以安全模式启动,/var/run/mysqld在重新启动时删除

问Ubuntu16.04上的Mysql :不能以root身份登录,不能以安全模式启动,/var/run/mysqld在重新启动时删除
EN

Ask Ubuntu用户
提问于 2017-04-26 09:44:50
回答 1查看 5.5K关注 0票数 0

我无法让mysql与Ubuntu16.04在戴尔的XPS-13 9360,mysql版本5.7.17上工作。似乎有两个问题:

1)我不能以root用户或超级用户身份登录,也不能以安全模式启动mysql。

2)停止服务时删除文件夹/var/run/mysqld。

以下是细节;

我已经通过在终端中运行以下命令(来源)来清除和重新安装mysql:

代码语言:javascript
复制
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean

重新安装它时:

代码语言:javascript
复制
sudo apt-get dist-upgrade
sudo apt-get install mysql-server

安装后,当我在终端中键入以下任一命令时:

代码语言:javascript
复制
mysql -uroot

或

代码语言:javascript
复制
sudo mysql -u root

我看到了这样的信息:

错误1045 (28000):拒绝用户'root'@'localhost‘的访问(使用密码:否)

我试图通过以下命令以安全模式启动mysql:

代码语言:javascript
复制
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &

此消息失败:

代码语言:javascript
复制
2017-04-26T08:54:42.307043Z mysqld_safe Logging to syslog.
2017-04-26T08:54:42.309096Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-04-26T08:54:42.311019Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-04-26T08:54:42.313024Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

通过输入我在重新安装mysql-server后,无法登录mysql root -u中找到的这些命令,我可以让mysql临时工作:

代码语言:javascript
复制
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &

这将替换丢失的文件,并在安全模式下启动mysql。然后在一个新的终点站:

代码语言:javascript
复制
mysql -uroot
SET PASSWORD for root@localhost = password('test')
FLUSH PRIVILEGES
\q

在正常模式下停止并重新启动mysql

代码语言:javascript
复制
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

在此之后,我可以使用以下两种方式登录:

代码语言:javascript
复制
sudo mysql -uroot

或

代码语言:javascript
复制
mysql -u root -p

但是,如果我再次停止并重新启动服务,则无法登录。如果我进入:

代码语言:javascript
复制
sudo mysql -uroot

我看到这个错误:

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

同样,当我重新启动计算机时,整个问题会再次出现。我尝试了这只虫子中的解决方法;我创建了一个包含以下代码的文件mysql.conf:

代码语言:javascript
复制
# systemd tmpfile settings for mysql
# See tmpfiles.d(5) for details

d /var/run/mysqld 0755 mysql mysql -

我把它保存在这些地方:

代码语言:javascript
复制
/etc/mysql/mysql.conf.d
/etc/tmpfiles.d

但这并没有什么区别。

我将非常感谢任何能帮助我让mysql工作的信息!

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2017-04-26 17:33:13

最初的问题似乎是由于我第一次安装mysql时没有为root设置密码造成的。对于本地开发来说,这以前是正常的,但在mysql 5.7.17中,这似乎会引起各种问题,而设置密码以后就无法修复它。

更复杂的是,当我再次尝试时,没有正确地卸载mysql。

最后,使用以下方法卸载mysql是可行的:

代码语言:javascript
复制
sudo apt purge mysql*

删除/etc/mysql文件夹

删除/var/lib/mysql、/var/lib/mysql-file、/var/lib/mysql-keyring文件夹。

重新启动

使用以下方法安装mysql:

代码语言:javascript
复制
sudo apt-get install mysql-server

确保为root设置密码!

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/909067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档