我的本地环境是:
sudo apt-get install mysql-common mysql-server
当我尝试通过MySQL登录MySQL时:
mysql -u root -p
我遇到了3个步骤的周期性问题。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
解决方案:重新启动PC。
导致另一个错误:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
可能的问题?“ root”用户的密码错误!
解决方案: 使用本教程重置root密码。
使用正确的密码和有效的套接字,将出现最后一个错误。
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
在这里我停了下来,或者又以某种方式回到了1)。
我有解决办法!
在步骤2)重置root密码时,还将auth插件更改为mysql_native_password:
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;
这使我能够成功登录!
sudo /etc/init.d/mysql stop # stop mysql service sudo mysqld_safe --skip-grant-tables & # start mysql without password # enter -> go mysql -uroot # connect to mysql
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;
sudo /etc/init.d/mysql stop sudo /etc/init.d/mysql start # reset mysql # try login to database, just press enter at password prompt because your password is now blank mysql -u root -p
当您看到 套接字 错误时,社区提供了两种可能的解决方案:
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)
mysql -uroot # "-hlocalhost" is default
可能导致“文件丢失”或slt错误。
mysql -uroot -h127.0.0.1
效果更好。
我发现了许多创建mysqld.sock文件,更改访问权限或对其进行符号链接的方法。毕竟这不是问题。
mysqld.sock
my.cnf
问题也不存在。如果您不确定,这可能会对您有所帮助。