Loading... ## And 1.引入 1. 某赛项又得命令行手搓MySql了,平时都图形化 2. MySql全都忘光了...[/折磨] 3. 无...... ## And 2.正文 #### And 2.1.环境 打开VM随便开台Linux登一下: ![image.png](https://www.zmzaxg.top/usr/uploads/2023/04/2826871082.png) ssh连接linux,到/etc下或者/usr/bin里看一下有没有mysql文件夹,也可以直接命令mysql ![image.png](https://www.zmzaxg.top/usr/uploads/2023/04/3054675761.png) 没有环境,ping一下百度看看有没有网 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/04/1689314323.png) 有网,我这里用centos直接yum安装 ```shell yum -y install mysql-server #install安装 -y默认选项yes ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/04/693303231.png) 安装完毕直接命令行mysql,出现下面报错证明安装好了 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/04/3528702184.png) --help查看帮助使用 ```shell mysql --help #查看帮助 ``` #### And 2.2.登录 先使用linux账号密码登录试试看 ```shell mysql -u root -p ``` 账号密码不对,这时候就得重置一下mysql密码 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/04/503723041.png) ##### And 2.2.1.重置密码 重置的第一步就是先关了mysql服务 ```shell service mysql stop ``` ###### And 2.2.1.1.报错解决 我这里发生了报错:Failed to stop mysql.service: Unit mysql.service not loaded. 就说说解决办法,没有报错的可以跳过 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/4270264644.png) 给mysql换mysqld试试也还是一样 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/3343749300.png) 没有mysql,就没安装一样,但确实安装了的,用yum reinstall来覆盖安装一下 ```shell yum reinstall -y mysql ``` 覆盖安装后还是一样,头大,find查找一下安装路径 ```shell find / -name "*mysql*" ##从根目录下开始查找名字保护mysql的所有文件和文件夹 ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1091909355.png) 进入到上面图框出来的路径看看能不能直接绝对路径启动mysql 我这里都是没法用,用yum安装也确实是安装上了,但给我感觉就是也没有装上,然后我就用yum看了一下安装的包 ```shell yum list installed |grep mysql ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/4137037817.png) 没有安上???用rpm看看 ```shell rpm -qa |grep mysql ``` 确定了没安上 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/206667018.png) 换个软件源重新安装试试看==》**本站搜索centos7软件源**《==可以看到相关文章 ###### And 2.2.1.2.离线安装mysql 配置好软件源后重新安装一遍mysql还是没有这个服务,只好离线安装了: 先到mysql官网下载一下rpm包 可以到这里下载:[MySQL :: Download MySQL Community Server (Archived Versions)](https://downloads.mysql.com/archives/community/) 选择好自己需要的版本和系统(我这里是64位的centos),下载**RPM Bundle** ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/2961994624.png) 在创建个目录,方便后面操作 ```shell mkdir /mysql_rpm ``` 将下载的压缩包上传到这个路经里,也可以直接wget直接下载到这个目录里 ```shell wget [文件链接] ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/17454129.png) 将压缩包解压出来 ```shell tar -xvf [压缩包名] ## -x 解压 ## -v 显示过程状态 ## -f 使用档案名字 ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1853466514.png) 然后用rpm来把解压出来的所有安装包都安装上,加上--nodeps不检查依赖关系,防止报错,再加个--force来给安装包强制安装上 ```shell rpm -ivh ./*.rpm --nodeps --force ## -i 选择包安装 ## -v 显示过程日志 ## -h 显示安装进度 ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1217988584.png) 用rpm看一下安装上了没有 ```shell rpm -qa |grep mysql ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/2869370757.png) 如果还是没有找到已安装的包,就一个一个去安装好再查看 全装上就行 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/3484838770.png) ###### And 2.2.1.3.重新安装或快照恢复 如果上面方法还不行就直接使用快照回复一下前面最近的快照来解决吧,没打快照的话,那恭喜,重新装一个吧,非特殊必要真的没必要去浪费这些时间了。 --- ##### And 2.2.1.需重置密码 关闭后去编辑mysql的配置文件 ```shell vi /etc/my.cnf ``` 在[mysqld]内容里加入一行skip-grant-tables保存退出,重启mysql服务,用于mysql登录免密码进入 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/04/2404269320.png) ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1305638883.png) ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1607314743.png) 等待一小会,我们直接用 ```shell mysql -u root -p ## 密码直接留空回车即可进入 ``` 直接可进Mysql ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/203806986.png) 查看一下当前Mysql内所有数据库 ```mysql show databases; ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1632825467.png) 这里我们只先给root用户做密码重置; 就先看看用户所在的库和表 使用use进入mysql这个数据库 ```mysql use mysql; ``` 再使用show来查看当前数据库内的所有表 ```mysql show tables; ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/2890483800.png) 如上图,可以看到一个名为`user`的数据表,我们数据库的所有用户都存在里面 用`select`语句查看数据表内容 ```mysql select * from user; ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1237364539.png) 由于我们使用`*`,直接输出数据表的所有类,可以将`*`替换成我们需要的列用`,`拼接即可: ```mysql select host,user,passsword from user; ``` 回车后我这里发现没有password列,新版本的mysql改用password列了 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1189812876.png) `authentication_string`列 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/1790980209.png) 用下面这行就行 ```mysql select host,user,authentication_string from user; ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/4102274649.png) 接下来我们用`update`对root账号修改密码 ```mysql update user set authentication_string=password('123456') where user='root'; ``` 如下图即修改成功 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/2278664858.png) 最后我们还要将配置文件的`skip-grant-tables`注释掉,然后重启mysql服务; 再使用以修改的密码登录看看: ```mysql mysql -u root -p 123456 ``` ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/588994451.png) 这里语句有些问题,我们把`-u`和`-p`的值之间的空格省略 ```mysql mysql -uroot -p123456 ``` 直接就登录上mysql了 ![image.png](https://www.zmzaxg.top/usr/uploads/2023/05/3211362365.png) 至此,mysql重置完成,也正常登录上了 #### And 2.3. 最后修改:2023 年 05 月 21 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 觉得文章有用,可以赞赏请我喝瓶冰露