我不断收到错误:
错误 2002 (HY000): 无法通过套接字连接到本地 MySQL 服务器 '/var/run/mysqld/mysqld.sock' (2)
尝试通过终端连接到MySQL时。
我已经完成了两个教程:
官方的: https://help.ubuntu.com/community/MysqlPasswordReset
还有一个不太官方的: https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts
创建文件/var/run/mysqld/mysqld.sock
在授予权限chown -R mysql /var/run/mysqld
chown -R mysql /var/run/mysqld/mysqld.sock
后实际上有效,然后我可以在终端中登录mysql并更改我的主要用户和root用户的密码。
再次运行sudo /etc/init.d/mysql start
或sudo /etc/init.d/mysql restart
后 - 无法使用我的用户名和密码连接到 mysql。
service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-05-07 12:00:51 IDT; 43s ago
Process: 11057 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 11042 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 11056 (mysqld)
Tasks: 13 (limit: 4915)
Memory: 103.3M
CPU: 464ms
CGroup: /system.slice/mysql.service
└─11056 /usr/sbin/mysqld
May 07 12:00:20 asd systemd[1]: Starting MySQL Community Server...
May 07 12:00:51 asd systemd[1]: Started MySQL Community Server.
在这篇文章之后: 错误 2002 (HY000): 无法通过套接字 '/var/run/mysqld/mysql.sock' 连接到本地 MySQL 服务器 (2)
重新启动 mysql 不起作用,因为再次运行时在帖子的乞求中提到sudo /etc/init.d/mysql start
结果:
sudo /etc/init.d/mysql start
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
sh: 0: getcwd() failed: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
[....] Starting mysql (via systemctl): mysql.servicejob-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
[ ok job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
.
sudo service mysql start
sh: 0: getcwd() failed: No such file or directory
完全重新安装MySQL是不可接受的。
其中一位评论者说:
客户端的设置应与服务器设置一致。
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306
这很奇怪,因为在我的目录中,/var/run/mysqld/
mysqld.sock
文件以某种方式被删除,并且我的/etc/mysql/my.cnf
文件中没有任何看起来像这样的东西:
#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
#bind-address = 127.0.0.1
如何正确稳定我的 MySQL 登录? 为什么会这样?
运行:
Distributor ID: Ubuntu
Description: Ubuntu 17.10
Release: 17.10
Codename: artful
在使用 PHP v8.1.3 和 MariaDB 10.6.4 时,我遇到了同样的问题,我尝试了:telnet 127.0.0.1 3306 和 l 收到以下响应:
telnet:无法连接到远程主机:连接被拒绝
我知道MySQL服务器没有运行,并进一步运行以下内容:
$PREFIX/etc/init.d/mysql stop
并收到以下回复:
错误!MariaDB 服务器进程 #9102 未运行!
我知道问题是我还没有启动MySQL服务,你可以按如下方式启动:
$PREFIX/etc/init.d/mysql start
在术语中
或
sudo/etc/init.d/mysql start
在 Ubuntu 中
来自termux的响应是
Starting MariaDB.
220318 11:44:24 mysqld_safe Logging to '/data/data/com.termux/files/usr/var/lib/mysql/localhost.err'.
220318 11:44:25 mysqld_safe Starting mariadbd daemon with databases from /data/data/com.termux/files/usr/var/lib/mysql.
SUCCESS!
祝你好运!!!
你还面临这个问题吗? 可能不是,但类似的事情发生在我身上,我意识到虽然查询运行正常,但它不会影响任何行......我修改了查询以仅匹配"本地主机"并且有效:
更新mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'),plugin='mysql_native_password' WHERE User='root' AND Host='localhost';