用shell为MySQL新版重置密码
时间:2016-10-04 23:23 来源:linux.it.net.cn 作者:IT
旧版的MySQL安装成功后,root账号是没有密码的,方便但是也带来不安全。从5.6.8版开始(现在的最新版是5.6.20),通过RPM方式安装的MySQL在安装过程中会自动设置一个随机的临时密码。安装过程结束后,通过账号下一个临时文件$HOME/.mysql_secret找到密码。它的内容是这样的:
# The random password set for the root user at xxxxxxxxxxxxxxxx: eQLxneugXwlucXLk
这个密码是临时密码,用它登录后只能做一件事:修改密码。通过MySQL客户端登录后,执行这个命令:
set password=password('123456');
再退出用新密码(123456)重新登录就可以了。
quit;
这样做安全了一点,但是有一个问题,这样安装过程就无法通过SHELL脚本实现自动化了。我想了两个办法:
1 通过mysqladmin命令修改密码,失败提示:Your password has expired. To log in you must change it using a client that supports expired passwords.
看来随机临时密码不能用于mysqladmin
2 通过mysql命令修改密码
echo "set password=password('123456')" | mysql -pzvhhvTKlJLSAdkGP
与mysqladmin命令的错误提示相同。
看来这个限制做的特别严格,我想了一个办法曲线解决问题:
1 停掉MySQL
service mysql stop
2 清空MySQL的数据库目录(如果其中有有用的数据,请自行备份)
\rm -rf /var/lib/mysql/*
3 重新初始化数据库,RPM方式初始化时会自动加上--random-passwords参数,我们这次重新执行不需要任何参数
mysql_install_db
4 为刚生成的文件修改所属用户/组
chown -R mysql:mysql /var/lib/mysql/
5 启动MySQL
service mysql start
6 设置新密码
/usr/bin/mysqladmin password 123456
顺利的话,就已经成功将密码设置为123456了,当然你可以设置的复杂一些。因为以上1-6步都是shell命令,所以可以在新版的MySQL中实现自动化设置密码。设置新密码
/usr/bin/mysqladmin password 123456 (责任编辑:IT)
旧版的MySQL安装成功后,root账号是没有密码的,方便但是也带来不安全。从5.6.8版开始(现在的最新版是5.6.20),通过RPM方式安装的MySQL在安装过程中会自动设置一个随机的临时密码。安装过程结束后,通过账号下一个临时文件$HOME/.mysql_secret找到密码。它的内容是这样的: # The random password set for the root user at xxxxxxxxxxxxxxxx: eQLxneugXwlucXLk 这个密码是临时密码,用它登录后只能做一件事:修改密码。通过MySQL客户端登录后,执行这个命令: set password=password('123456'); 再退出用新密码(123456)重新登录就可以了。 quit; 这样做安全了一点,但是有一个问题,这样安装过程就无法通过SHELL脚本实现自动化了。我想了两个办法: 1 通过mysqladmin命令修改密码,失败提示:Your password has expired. To log in you must change it using a client that supports expired passwords. 看来随机临时密码不能用于mysqladmin 2 通过mysql命令修改密码 echo "set password=password('123456')" | mysql -pzvhhvTKlJLSAdkGP 与mysqladmin命令的错误提示相同。 看来这个限制做的特别严格,我想了一个办法曲线解决问题: 1 停掉MySQL service mysql stop 2 清空MySQL的数据库目录(如果其中有有用的数据,请自行备份) \rm -rf /var/lib/mysql/* 3 重新初始化数据库,RPM方式初始化时会自动加上--random-passwords参数,我们这次重新执行不需要任何参数 mysql_install_db 4 为刚生成的文件修改所属用户/组 chown -R mysql:mysql /var/lib/mysql/ 5 启动MySQL service mysql start 6 设置新密码 /usr/bin/mysqladmin password 123456 顺利的话,就已经成功将密码设置为123456了,当然你可以设置的复杂一些。因为以上1-6步都是shell命令,所以可以在新版的MySQL中实现自动化设置密码。设置新密码 /usr/bin/mysqladmin password 123456 (责任编辑:IT) |