当我在终端输入时mysql
出现以下错误:
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)
但是如果使用如下一些参数运行 mysql:
mysql -h 127.0.0.1 -P 3306 -u root -p
它要求我输入 /etc/my.cnf 中已定义的 mysql 密码。因此,我粘贴了相同的密码,并像这样连接到数据库终端:
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.6.4-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
在我的/etc/my.cnf
我有以下内容:
[mysqld]
bind-address=127.0.0.1
port=3360
max_allowed_packet=64M
local-infile=0
innodb_file_per_table
[client]
user=root
password=MYSQLPASSWORDHERE
socket=/usr/local/mysql/data/mysql.sock
问题是,由于我已经预定义了 root 密码、端口和绑定地址,为什么如果我运行不带任何参数的命令,/etc/my.cnf
它仍然会显示有关套接字的错误mysql
我的目的是在终端中运行mysql
命令而不带任何参数,它将向我显示 mysql 终端
答案1
我找到了这个问题的解决方案。我mailutils
之前安装过 Debian 软件包,如下所示:
apt install mailutils
它将包括以下包:
The following additional packages will be installed:
gsasl-common guile-2.2-libs libgc1 libgsasl7 libidn11 libmailutils7 libmariadb3 libntlm0
mailutils-common mariadb-common mysql-common
我认为这是由于 mariadb 安装冲突造成的,因此当我从 Debian 中删除此 mailutils 包时,不再出现该错误。因此,我可以在终端中直接运行 mysql,而不会出现套接字错误。