我无法让mysql与Ubuntu16.04在戴尔的XPS-13 9360,mysql版本5.7.17上工作。似乎有两个问题:
1)我不能以root用户或超级用户身份登录,也不能以安全模式启动mysql。
2)停止服务时删除文件夹/var/run/mysqld。
以下是细节;
我已经通过在终端中运行以下命令(来源)来清除和重新安装mysql:
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean重新安装它时:
sudo apt-get dist-upgrade
sudo apt-get install mysql-server安装后,当我在终端中键入以下任一命令时:
mysql -uroot或
sudo mysql -u root我看到了这样的信息:
错误1045 (28000):拒绝用户'root'@'localhost‘的访问(使用密码:否)
我试图通过以下命令以安全模式启动mysql:
sudo /etc/init.d/mysql stop
sudo mysqld_safe --skip-grant-tables &此消息失败:
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临时工作:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables &这将替换丢失的文件,并在安全模式下启动mysql。然后在一个新的终点站:
mysql -uroot
SET PASSWORD for root@localhost = password('test')
FLUSH PRIVILEGES
\q在正常模式下停止并重新启动mysql
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start在此之后,我可以使用以下两种方式登录:
sudo mysql -uroot或
mysql -u root -p但是,如果我再次停止并重新启动服务,则无法登录。如果我进入:
sudo mysql -uroot我看到这个错误:
错误2002 (HY000):无法通过套接字'/var/run/mysqld/mysqld.sock‘连接到本地MySQL服务器(2)
同样,当我重新启动计算机时,整个问题会再次出现。我尝试了这只虫子中的解决方法;我创建了一个包含以下代码的文件mysql.conf:
# systemd tmpfile settings for mysql
# See tmpfiles.d(5) for details
d /var/run/mysqld 0755 mysql mysql -我把它保存在这些地方:
/etc/mysql/mysql.conf.d
/etc/tmpfiles.d但这并没有什么区别。
我将非常感谢任何能帮助我让mysql工作的信息!
发布于 2017-04-26 17:33:13
最初的问题似乎是由于我第一次安装mysql时没有为root设置密码造成的。对于本地开发来说,这以前是正常的,但在mysql 5.7.17中,这似乎会引起各种问题,而设置密码以后就无法修复它。
更复杂的是,当我再次尝试时,没有正确地卸载mysql。
最后,使用以下方法卸载mysql是可行的:
sudo apt purge mysql*删除/etc/mysql文件夹
删除/var/lib/mysql、/var/lib/mysql-file、/var/lib/mysql-keyring文件夹。
重新启动
使用以下方法安装mysql:
sudo apt-get install mysql-server确保为root设置密码!
https://askubuntu.com/questions/909067
复制相似问题