我的本地环境是:
新鲜的Ubuntu 16.04 使用PHP 7 安装了MySQL 5.7
sudo apt-get install mysql-common mysql-server 当我尝试通过MySQL登录MySQL时:
mysql -u root -p 我遇到了3个步骤的周期性问题。
1)首先是一些套接字问题 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 解决方案:重新启动PC。
导致另一个错误:
2)拒绝访问 ERROR 1698 (28000): Access denied for user 'root'@'localhost'. 可能的问题?“ root”用户的密码错误!
解决方案:使用本教程重置root密码。
使用正确的密码和有效的套接字,将出现最后一个错误。
3)不正确的auth插件 mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded" 在这里我停了下来,或者又以某种方式回到了1)。
我有解决办法!
在步骤2)重置root密码时,还将auth插件更改为mysql_native_password:
use mysql; update user set authentication_string=PASSWORD("") where User='root'; update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges; quit; 这使我能够成功登录!
完整代码解决方案 1.运行bash命令 1.首先,运行以下bash命令 sudo /etc/init.d/mysql stop # stop mysql service sudo mysqld_safe --skip-grant-tables & # start mysql without password
mysql -uroot # connect to mysql 2.然后运行mysql命令=>将其手动复制粘贴到cli use mysql; # use mysql table update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges; quit; 3.运行更多的bash命令 sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start # reset mysql
mysql -u root -p 4.套接字问题(根据您的评论) 当您看到套接字错误时,社区提供了两种可能的解决方案:
sudo mkdir -p /var/run/mysqld; sudo chown mysql /var/run/mysqld sudo mysqld_safe --skip-grant-tables & (感谢@Cerin)
要么
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(感谢@Peter Dvukhrechensky)
盲径和可能的边缘错误 使用127.0.0.1代替localhost mysql -uroot # "-hlocalhost" is default 可能导致“文件丢失”或slt错误。
mysql -uroot -h127.0.0.1 效果更好。
跳过套接字问题 我发现了许多创建mysqld.sock文件,更改访问权限或对其进行符号链接的方法。毕竟这不是问题。
跳过my.cnf文件 问题也不存在。如果您不确定,这可能会对您有所帮助。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。