And 1.引入

  1. 某赛项又得命令行手搓MySql了,平时都图形化
  2. MySql全都忘光了...[/折磨]
  3. 无......

And 2.正文

And 2.1.环境

打开VM随便开台Linux登一下:

image.png

ssh连接linux,到/etc下或者/usr/bin里看一下有没有mysql文件夹,也可以直接命令mysql

image.png

没有环境,ping一下百度看看有没有网

image.png

有网,我这里用centos直接yum安装

yum -y install mysql-server
#install安装 -y默认选项yes

image.png

安装完毕直接命令行mysql,出现下面报错证明安装好了

image.png

--help查看帮助使用

mysql --help
#查看帮助

And 2.2.登录

先使用linux账号密码登录试试看

mysql -u root -p

账号密码不对,这时候就得重置一下mysql密码

image.png

And 2.2.1.重置密码

重置的第一步就是先关了mysql服务

service mysql stop
And 2.2.1.1.报错解决

我这里发生了报错:Failed to stop mysql.service: Unit mysql.service not loaded.

就说说解决办法,没有报错的可以跳过

image.png

给mysql换mysqld试试也还是一样

image.png

没有mysql,就没安装一样,但确实安装了的,用yum reinstall来覆盖安装一下

yum reinstall -y mysql

覆盖安装后还是一样,头大,find查找一下安装路径

find / -name "*mysql*"
##从根目录下开始查找名字保护mysql的所有文件和文件夹

image.png

进入到上面图框出来的路径看看能不能直接绝对路径启动mysql

我这里都是没法用,用yum安装也确实是安装上了,但给我感觉就是也没有装上,然后我就用yum看了一下安装的包

yum list installed |grep mysql

image.png

没有安上???用rpm看看

rpm -qa |grep mysql

确定了没安上

image.png

换个软件源重新安装试试看==》本站搜索centos7软件源《==可以看到相关文章

And 2.2.1.2.离线安装mysql

配置好软件源后重新安装一遍mysql还是没有这个服务,只好离线安装了:

先到mysql官网下载一下rpm包

可以到这里下载:MySQL :: Download MySQL Community Server (Archived Versions)

选择好自己需要的版本和系统(我这里是64位的centos),下载RPM Bundle

image.png

在创建个目录,方便后面操作

mkdir /mysql_rpm

将下载的压缩包上传到这个路经里,也可以直接wget直接下载到这个目录里

wget [文件链接]

image.png

将压缩包解压出来

tar -xvf [压缩包名]
## -x 解压
## -v 显示过程状态
## -f 使用档案名字

image.png

然后用rpm来把解压出来的所有安装包都安装上,加上--nodeps不检查依赖关系,防止报错,再加个--force来给安装包强制安装上

rpm -ivh ./*.rpm --nodeps --force
## -i 选择包安装
## -v 显示过程日志
## -h 显示安装进度

image.png

用rpm看一下安装上了没有

rpm -qa |grep mysql

image.png

如果还是没有找到已安装的包,就一个一个去安装好再查看

全装上就行

image.png

And 2.2.1.3.重新安装或快照恢复

如果上面方法还不行就直接使用快照回复一下前面最近的快照来解决吧,没打快照的话,那恭喜,重新装一个吧,非特殊必要真的没必要去浪费这些时间了。


And 2.2.1.需重置密码

关闭后去编辑mysql的配置文件

vi /etc/my.cnf

在[mysqld]内容里加入一行skip-grant-tables保存退出,重启mysql服务,用于mysql登录免密码进入

image.png

image.png

image.png

等待一小会,我们直接用

mysql -u root -p
## 密码直接留空回车即可进入

直接可进Mysql

image.png

查看一下当前Mysql内所有数据库

show databases;

image.png

这里我们只先给root用户做密码重置;

就先看看用户所在的库和表

使用use进入mysql这个数据库

use mysql;

再使用show来查看当前数据库内的所有表

show tables;

image.png

如上图,可以看到一个名为user的数据表,我们数据库的所有用户都存在里面

select语句查看数据表内容

select * from user;

image.png

由于我们使用*,直接输出数据表的所有类,可以将*替换成我们需要的列用,拼接即可:

select host,user,passsword from user;

回车后我这里发现没有password列,新版本的mysql改用password列了

image.png

authentication_string

image.png

用下面这行就行

select host,user,authentication_string from user;

image.png

接下来我们用update对root账号修改密码

update user set authentication_string=password('123456') where user='root';

如下图即修改成功

image.png

最后我们还要将配置文件的skip-grant-tables注释掉,然后重启mysql服务;

再使用以修改的密码登录看看:

mysql -u root -p 123456

image.png

这里语句有些问题,我们把-u-p的值之间的空格省略

mysql -uroot -p123456

直接就登录上mysql了

image.png

至此,mysql重置完成,也正常登录上了

And 2.3.

最后修改:2023 年 05 月 21 日
觉得文章有用,可以赞赏请我喝瓶冰露