rm -rf /var/lib/mysql/后重启MySQL

目录

一、rm -rf /var/lib/mysql/

二、mysqld --initialize

三、重新生成密码

四、修改密码


一、rm -rf /var/lib/mysql/

有些时候为了实验环境干净,我们需要删除数据库中所有数据。MySQL中所有数据(库、表)都在/var/lib/mysql/目录下,所以为了方便我们可以直接把此目录下所有文件删除掉。

二、mysqld --initialize

mysqld --initialize可以初始化数据目录,可以帮我们将/var/lib/mysql/恢复到刚安装MySQL的时候。在某些MySQL版本中,在删除/var/lib/mysql/下的文件后,也可以通过systemctl restart mysql来进行初始化,它自动检测并初始化数据库,但这并不是通用的,所以建议用mysqld --initialize。

注意:

重启数据库服务在不同系列操作系统中有所不同:

#centos/rocky
systemctl restart mysqld.service

#ubuntun
systemctl restart mysql.service

#另外上面俩种写法后面的.service都可以省略

mysqld --initialize初始化后,检查/var/lib/mysql/目录,是否初始化成功?如下图这样大概就是成功的:

 如果只生成了一个ib_buffer_pool,将ib_buffer_pool删除后再执行一遍mysqld --initialize即可

三、重新生成密码

在初始化成功之后会重新生成随机的密码,如果你直接使用mysql登录,会报错:

root@Ubuntu22:/var/lib/mysql# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

这样就必须使用生成的密码才能登录(也可以修改配置文件来跳过密码),随机生成的密码在错误日志的文件中。

#rocky
/var/log/mysql/mysqld.log

#ubuntun
/var/log/mysql/error.log

 注意,这个密码会过期的,要找最近生成的密码才行。

另外直接使用以下命令登录也会报错:

mysql -uroot -p8&MDa:Q1Vg0i

 正确的方式:

不要将密码打在命令行里面,出现输入密码的提示后,直接粘贴或手动输入密码进去。

四、修改密码

猜你喜欢

转载自blog.csdn.net/qq_54381110/article/details/131859227
今日推荐