0%

mysql | Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

在 ubuntu20.04 安装的时候出现这个。

ubuntu20.04

查看 mysql 的配置,查看套接字。

一般在 /etc/mysql/my.cnf 中。默认套接字是 /var/run/mysqld/mysqld.sock

进入 /var/run 发现 mysqld 确实没有权限,所以,给了一个权限

1
sudo chmod 777 mysqld

然后进入 mysqld 新创建了 mysqld.sock,并且赋予权限。

重启 mysql

1
sudo service mysql restart

macbook

有一天,我使用

1
mysql -u root -p

出现

1
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

我运行 ps aux | grep mysql 发现并没有 mysql 这个进程,于是,查了资料说要用

1
brew services start mysql

结果出现 Error: Your Homebrew is too outdated forbrew services. Please runbrew update!,没辙,又升级 brew

1
2
brew update
brew upgrade

然后使用 brew 开启 mysql 还是失败,然后用

1
brew list | grep mysql

发现没有 mysql,也就是说,我的 mysql 不是 brew 安装的。

使用 which mysql 查询到我的 mysql 位于 /usr/local/mysql/bin/mysql

然后进入 bin 文件夹,ls 后出现

1
2
3
4
5
6
ibd2sdi                   myisamlog                 mysql_ssl_rsa_setup       mysqld                    mysqlimport               mysqlslap
innochecksum myisampack mysql_tzinfo_to_sql mysqld-debug mysqlpump perror
lz4_decompress mysql mysql_upgrade mysqld_multi mysqlrouter zlib_decompress
my_print_defaults mysql_config mysqladmin mysqld_safe mysqlrouter_passwd
myisam_ftdump mysql_config_editor mysqlbinlog mysqldump mysqlrouter_plugin_info
myisamchk mysql_secure_installation mysqlcheck mysqldumpslow mysqlshow

在使用命令行之前,我进入 /tmp/ 新创建了一个 mysql.sock 文件,并赋予 777 权限。

查阅资料,应该使用

1
2
sudo mysql.server stop
sudo mysql.server start

但是,我并没有 mysql.server,然后又查到可以食用

1
sudo mysqladmin start

发现好了。

最近发现上面的方法不好用了。可以尝试用下面的方法

进入 /usr/local/mysql/support-files 执行 sudo ./mysql.server start

请我喝杯咖啡吧~