目录

一、环境

二、背景

三、解决步骤

1.使用安全模式进入mysql【1】

2.重启mysql服务

3.使用安全模式进入mysql并修改root密码

3.1安全模式下进入不需要验证

3.2进入mysql数据库

3.3把user表密码重置为123456

3.4 user表操作报错解决【2】

3.5 再执行更新操作

3.6刷新系统权限相关表

3.7退出mysql

4.将第一步文件中的skip-grant-tables注释掉,并重启MySQL服务器

5、再次重新访问mysql,发现依旧无法进入

6、解决user表为空的问题【3,4】

6.1修改mysqld.cnf文件

6.2重启mysql服务,并使用root 空密码连接数据库

6.3向user表插入root用户

6.4修改root用户权限,并更新权限,然后退出

7、将配置文件修改恢复

8、重启mysql服务,能够正常访问了

四、参考


一、环境


ubuntu虚拟机:18.04Ubuntu

image.png

mysql:5.7.40

1.png


二、背景


长时间没有操作mysql了,今天有事需要访问一下,于是打开终端,输入mysql -uroot -ppassword 登录访问:报错ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104


根据报错提示检索,查看了mysql的进程,错误日志,mysql的3306端口以及修改了mysql相关的配置文件.cnf。均没有解决,后来继续登录还会报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)。反正就各种报错,无法访问和登录。


错误日志部分截图:

1.png

root@yh-virtual-machine:~#mysql -uroot -h 127.0.0.1 -p

Enter password:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104

root@yh-virtual-machine:~# mysql -uroot -p

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


解决了一晚上终于找到了解决方案,最终也将之完美处理了,下面是具体的解决步骤。


注:前期操作可能操作的mysql配置文件没有找对,网上大部分让操作的是/ect/my.cnf文件,而我电脑上真正的mysql配置文件是:/ect/mysql/mysql.conf.d/mysqld.cnf


三、解决步骤


1.使用安全模式进入mysql【1】

在/etc/mysql/mysql.conf.d/mysqld.cnf文件下的[mysqld]字段下加入一行“skip-grant-tables”


2.重启mysql服务

sudo systemctl restart mysql


3.使用安全模式进入mysql并修改root密码


3.1安全模式下进入不需要验证


3.2进入mysql数据库

可以使用show databases查看本地MySQL上有哪些数据库,选择mysql

1.png


3.3把user表密码重置为123456

可以使用show tables;查看mysql中有哪些表,user在其中。

1.png


3.4 user表操作报错解决【2】

1.png

MySQL错误Incorrect file format解决方案:

用REPAIR命令修复OK

check table <表名>;#检查表

REPAIR TABLE <表名> USE_FRM;#修复表

1.png

/images/img/20220308164232.png 4.安装运行mysql8.0容器 docker run -p 3307:3306 --name mysql -e MYSQL Linux:Ubuntu安装jdk、tomcat、mysql,以及实现Tomcat开机自启动
Linux:Ubuntu安装jdk、tomcat、mysql,以及实现Tomcat开机自启动
远程在线给Ubuntu安装MySQL,Navicat远程连接数据库(详细过程和避坑事项)
这里使用XShell连接服务器,设置主机ip,ssh远程连接即可。如此可用命令去操纵服务器。