gpt4 book ai didi

mysql - 如何使用 bash shell 脚本更改临时 root MySQL 密码?

转载 作者:行者123 更新时间:2023-11-29 11:00:28 25 4
gpt4 key购买 nike

我需要更改 MySQL 守护进程启动时创建的临时 root 密码。问题是临时密码有一些奇怪的字符(例如左/右括号)需要转义。现在,一般来说,有几篇文章( hereherehere )介绍如何转义字符,但这篇文章是在使用 bash 脚本更改临时 MySQL root 密码的背景下进行的。 特殊字符。

目前,我的脚本如下所示。

function startMysql {
sudo service mysqld start
echo "started mysql"

export PW=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $11}')
# export PASS=\'$PW\'
echo "temporary password is $PW"
mysqladmin -u root -p$PW password aaBB@@cc1122
# the following doesn't work either
# mysqladmin -u root -p$PASS password aaBB@@cc1122
echo "changed mysql password"
}

请注意,临时密码可能如下所示。

  • BYkc*),ZM3-_

如果我在终端上输入以下内容,它就会起作用。

mysqladmin -u root -p'BYkc*),ZM3-_' password aaBB@@cc1122

但是在脚本内部,它失败了。以下是我尝试在 $PW 周围添加单引号的一些方法,但没有成功。

  • mysqladmin -u root -p"'$PW'"密码 aaBB@@cc1122
  • mysqladmin -u root -p\''$PW'\' 密码 aaBB@@cc1122
  • mysqladmin -u root -p"$PW"密码 aaBB@@cc1122
  • mysqladmin -u root -p"\"$PW\""密码 aaBB@@cc1122

关于我做错了什么有什么想法吗?

最佳答案

使用双引号对我来说确实有效:

password=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $11}')
mysqladmin --user=root --password="$password" password aaBB@@cc1122

关于mysql - 如何使用 bash shell 脚本更改临时 root MySQL 密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42380067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com