自动修改mysql5.7初始化密码

mysql5.7为了安全考虑,初始化后root密码随机生成,密码放在error日志里面.

分两步:

  1. 第一步获取error.log密码.

  2. 修改默认密码,


passwd=`grep 'generated for root@localhost' $base_log/error.log|awk '{print $NF}'`
expect <<!
spawn /app/mysql/servers/bin/mysql -uroot -p
expect "*password*"
send "${passwd}\r";
expect "*>"
send "set password for 'root'@'localhost'=password('xxxxx');\r" #如果密码太简单可能修改失败
send "exit\r"
expect eof
!

变量说明:

$base_log mysql日志log目录

xxxxx 需要设置的密码