目前,我正试图在Ubuntu (用于Vagrant)上自动化MySQL的清除和重新安装。然而,我在这方面遇到了各种问题。
以下是我所拥有的:
# Uninstall old MySQL version
sudo systemctl stop mysql
sudo apt-get remove mysql-* -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
# ...
# Do other stuff.
# ...
# Install MySQL latest, see
# https://gist.github.com/kpietru/a3cb08ee074a4418795a
MYSQL_PASSWORD="root"
export MYSQL_PASSWORD="$MYSQL_PASSWORD"
sudo expect -c '
spawn apt-get install -y mysql-server
expect "*password* user:"
send "$env(MYSQL_PASSWORD)\r"
expect "*password* user:"
send "$env(MYSQL_PASSWORD)\r"
expect "\r"
send "enter\r"
interact'
sudo systemctl unmask mysql.service
sudo service mysql start
mysql --version这个很好,我的蒸汽箱也装得很好。但是,当我尝试像这样使用MySQL时:
mysql -uroot -proot我得到一个与套接字相关的错误消息(请参阅https://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq)。我不想在这里修正错误。我希望前面的脚本能正常工作。因此,我不会去兔子洞的固定插座的错误。
我的第一个直觉是使用sudo apt-get purge -y mysql-*而不是remove,但之后我必须使用expect自动执行提示响应。我试图用autoexpect来实现这一点,但是生成的expect脚本似乎不起作用。
你们能帮帮我吗?还有什么我可以试试的吗?
提前谢谢,干杯!
发布于 2021-07-27 09:03:11
我的一位同事设法找到了解决这个问题的办法。我会把它发到这里,这样我就可以避免其他人头疼了:)
# Remove previous MySQL versions
####################################################################
export DEBIAN_FRONTEND=noninteractive
sudo systemctl stop mysql
sudo apt-get remove mysql-* -y
sudo dpkg --configure -a
sudo -E apt-get purge mysql-*
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
sudo apt-get autoremove
sudo apt-get autoclean
# Install MySQL 8.0
####################################################################
sudo apt-get update
sudo apt install mysql-server-8.0 -o Dpkg::Options::="--force-confnew" -y
# Enable native password authentication
#
# Otherwise you would have to open MySQL as root:
# `sudo mysql -u root`
####################################################################
echo "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;" | sudo mysql -u roothttps://askubuntu.com/questions/1350537
复制相似问题