场景描述:

一台阿里云服务器,上面有装mysql数据库,但是不知道数据库的密码。怎么办! 改密码呗。下面一系列故事就围绕改密码展开来了。

整个过程:

     1、一顿操作猛如虎,感觉自己不是新手,得有追求,得看看系统的版本,等一系列的参数,其实然并卵。

cdh上修改mysql数据库连接密码 怎样修改mysql数据库密码_cdh上修改mysql数据库连接密码

     2、打开百度 阿里云修改mysql 数据库密码。 出来一堆 。总结出来就是要在 my.cnf 文件里面的 [mysqld] 加 skip-grant-tables 

好家伙找到线索那就开干呗。开始找my.cnf

cdh上修改mysql数据库连接密码 怎样修改mysql数据库密码_数据库_02

咦搜到了 高兴坏了。然后就按照大多数的教程上面那样打开my.cnf 

cdh上修改mysql数据库连接密码 怎样修改mysql数据库密码_MySQL_03

cdh上修改mysql数据库连接密码 怎样修改mysql数据库密码_MySQL_04

大多数的博客上面的说的都是[mysqld] 这里面没有怎么办,哦我得试试,但是我始终觉得自己不是新手。对我得备份cp my.cnf my.cnf.bak。

在 [mysqld.2]的下面插入了 skip-grant-tables

然后 systemctl mysqld restart  发现阿里云不支持 systemctl  然后改成service mysqld restart  可以重启。会发现后面都会有个d 尝试了一下 service mysql restart 还真不行。

然后就是mysql -u root -p 回车 不行提示输入密码 回车后就报错。 然后继续搜,说要 reboot 服务器。试了一遍依然没有结果。 怎么办,刚才不是搜了两个文件么,那排列一下应该是 1 改 2不改、 1改 2改、  1不改 2 改、 1 不改 2 不改。那就是试一下另外两种情况吧。然后也是没有结果。

然后搜到了mysqld_safe --skip-grant-tables &()执行报一堆的错。然后就开始骂了都写的什么乱七八糟的博客,解决不了我的问题。 其实也不能完全怪人家 嘻嘻,我的场景和他们写的场景不完全匹配。

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲上面只是记录一下过程解决问题看下面▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲



我的 /etc/下面没有 my.cnf  带着这个关键字我重新出发了。

原来 Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,

至于为什么没有这个文件而MySQL却也能正常启动和作用,有两个说法,

第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动。

第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL。

解决方法,只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。

看到一个有用的评论:

我是特意来评论一下,mysql确实是默认没有这个文件的,复制%mysql_HOME/support-files找到my-medium.cnf到/ect目录即可,估计mysql的原理是依次寻找cnf这个文件,顺序可以通过这个命令查看:sudo mysql --help | grep my.cnf,希望能给后续的人有所帮助,mysql设计真TMD蛋疼!

结合上面的我准备再试一把,带着忐忑的心情我又重新出发了!!


在 /user/share/mysql 看看有没有.cnf 依然没有要的.cnf  怎么办全盘 

find / -name my-medium.cnf  

cdh上修改mysql数据库连接密码 怎样修改mysql数据库密码_cdh上修改mysql数据库连接密码_05

在这个地方搜到了,事情到了这个地步了那就是死马当活马医了,干!!!

复制到 /etc/ 下面然后就是打开一看有 [mysqld] 不错不错味道好极了!然后就是在

my-medium.cnf 在 [mysqld] 下面插入skip-grant-tables  重命名了成my.cnf. 具体不命名成my.cnf 行不行没有事,不找麻烦。

然后 /etc/init.d/mysqld restart 重启 mysql服务

然后 mysql -u root -p  回车进去了。进入到这个界面了

cdh上修改mysql数据库连接密码 怎样修改mysql数据库密码_cdh上修改mysql数据库连接密码_06

至此事情完成了一大半了。

进入msyql数据库:

cdh上修改mysql数据库连接密码 怎样修改mysql数据库密码_数据库_07

mysql>  UPDATE user SET password=password('123456') WHERE User='root'; 

mysql> flush privileges ;

到此为止 mysql 修改密码就完成了。 记得最后吧 /etc/my.cnf [mysqld] 下面的 skip-grant-tables  去掉 否则无密码登录就行了。