Ubuntu彻底卸载Mysql以及解决Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock方法

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

Ubuntu上下载了Navicat用于可视化数据库管理,结果报错,报错信息如下:

毕竟确实很久没有手动安装MySQL了,我第一感觉是我配置错误,随后按网上教程乱设置了一通,结果任然不行。

奇怪的是在终端中却是正常工作的,所以我决定先卸载MySQL重装再判断。

如果是通过

来卸载MySQL的话是卸载不干净的,需要按如下方法完整卸载。

Ubuntu18.8彻底卸载MySQL

首先在终端中查看MySQL的依赖项:

卸载:sudo apt-get remove mysql-common

卸载:sudo apt-get autoremove –purge mysql-server-5.7

清除残留数据:dpkg -l|grep ^rc|awk ‘{print$2}’|sudo xargs dpkg -P

再次查看MySQL的剩余依赖项

继续删除剩余依赖项,如:sudo apt-get autoremove –purge mysql-apt-config

安装MySQL

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

安装完成之后可以使用如下命令来检查是否安装成功:

通过上述命令检查之后,如果看到有 mysql 的socket处于 LISTEN 状态则表示安装成功。

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

登录mysql数据库可以通过如下命令:

-u 表示选择登陆的用户名, -p 表示登陆的用户密码,现在是mysql数据库是没有密码的,Enter password:处直接回车,就能够进入mysql数据库。

然后通过 show databases; 就可以查看当前的所有数据库。

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

接下来,为了确保数据库的安全性和正常运转,对数据库进行初始化操作。这个初始化操作涉及下面5个步骤。

  • (1)安装验证密码插件。
  • (2)设置root管理员在数据库中的专有密码。
  • (3)随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。
  • (4)删除默认的测试数据库,取消测试数据库的一系列访问权限。
  • (5)刷新授权列表,让初始化的设定立即生效。

对于上述数据库初始化的操作步骤,在下面的输出信息旁边我做了简单注释。

# 要安装验证密码插件吗?

# 这里我选择N

# 输入要为root管理员设置的数据库密码

# 再次输入密码

# 删除匿名账户

# 禁止root管理员从远程登录,这里我没有禁止

# 删除test数据库并取消对它的访问权限

# 刷新授权表,让初始化后的设定立即生效

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

重装完成!

检查mysql服务状态:

显示如下结果说明mysql服务运行是正常的:

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

修复navicat mysql.sock错误

好了,现在我们确定MySQL很干净,并且是重装的,原则上肯定是没有问题的。

剥离网上搜到的乱七八糟的结果,我们来看问题的本质:

这个文件为什么会报错,他会不会只是单纯的不存在?

在/etc/mysql/mysql.conf.de/下找到mysqld.cnf,我们需要看看配置文件中的socket路径

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

可以看到文件中显示的路径是:

与Navicat所需要的路径:

两者需求是不一致的,故而会报错。

找到原因后,我们就来解决它。

软连接

此刻,我们只需要设置一个软链接就能解决这个问题,软链接可以粗略的认为是Windows下的快捷方式,具体来讲是这样的:

Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

  • -f : 链结时先将与 dist 同档名的档案删除
  • -d : 允许系统管理者硬链结自己的目录
  • -i : 在删除与 dist 同档名的档案时先进行询问
  • -n : 在进行软连结时,将 dist 视为一般的档案
  • -s : 进行软链结(symbolic link)
  • -v : 在连结之前显示其档名
  • -b : 将在链结时会被覆写或删除的档案进行备份
  • -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
  • -V METHOD : 指定备份的方式
  • –help : 显示辅助说明
  • –version : 显示版本

看明白上面的说明后,我们只需要下面这样一句代码运行在终端中,即可!

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

查看当前文件夹可以看到这个软链接已经创建完成

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

关闭Navicat,重新打开,再次链接,我们就能正确连接上数据库,并且没有再报错。

Ubuntu彻底卸载Mysql以及解决Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock方法

 

原创文章,作者:蓝洛水深,如若转载,请注明出处:https://www.ilanluo.com/8662

发表评论

登录后才能评论