Puncte:2

Automatizarea (dez-)instalarea MySQL

drapel ru

În prezent, încerc să automatizez curățarea și reinstalarea MySQL pe Ubuntu (pentru Vagrant).Cu toate acestea, întâmpin diverse probleme cu asta.

Iată ce am:

# Dezinstalați vechea versiune MySQL
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

#...
# Faceți alte lucruri.
#...

# Instalează MySQL cel mai recent, vezi
# https://gist.github.com/kpietru/a3cb08ee074a4418795a
MYSQL_PASSWORD="rădăcină"

export MYSQL_PASSWORD="$MYSQL_PASSWORD"

sudo astept -c '
    spawn apt-get install -y mysql-server

    așteptați „*parola* utilizator:”
    trimite „$env(MYSQL_PASSWORD)\r”

    așteptați „*parola* utilizator:”
    trimite „$env(MYSQL_PASSWORD)\r”

    așteptați „\r”
    trimite "enter\r"

interacționa'

sudo systemctl demasc mysql.service
sudo service mysql start

mysql --version

Funcționează și cutia mea Vagrant se încarcă bine. Cu toate acestea, când încerc să folosesc MySQL așa:

mysql -uroot -proot

Primesc un mesaj de eroare legat de socket (vezi https://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq). Nu vreau să repar o eroare aici. Vreau ca scripturile anterioare să funcționeze corect. Prin urmare, nu voi merge în gaura iepurelui de a remedia eroarea prizei.

Prima mea intuiție a fost să folosesc sudo apt-get purge -y mysql-* în loc de elimina, dar apoi trebuie să automatizez răspunsurile prompte cu aştepta. Am încercat să fac asta cu așteptare automată, cu exceptia aştepta scriptul generat nu pare să funcționeze.

Mă puteți ajuta băieți? Mai pot încerca ceva?

Mulțumesc anticipat și felicitări

Puncte:1
drapel ru

Un coleg de-al meu a reușit să găsească o soluție la această problemă. O voi posta aici ca sa-i pot scuti pe altii de ceva batai de cap :)

# Eliminați versiunile anterioare MySQL
#################################################################### #################

export DEBIAN_FRONTEND=neinteractiv

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

# Instalați MySQL 8.0
#################################################################### #################

sudo apt-get update
sudo apt install mysql-server-8.0 -o Dpkg::Options::="--force-confnew" -y

# Activați autentificarea nativă prin parolă
#
# În caz contrar, ar trebui să deschideți MySQL ca root:
# `sudo mysql -u root`
#################################################################### #################

echo „ALTERAȚI UTILIZATOR „rădăcină”@”localhost” IDENTIFICAT CU mysql_native_parola DE „rădăcină”; FLUSH PRIVILEGES;” | sudo mysql -u root
drapel jp
Dan
Ar trebui să puteți utiliza `sudo apt install mysql-server` în loc de `sudo apt install mysql-server-8.0` (adică să eliminați versiunea), astfel încât scriptul dvs. ar funcționa în continuare dacă îl utilizați ulterior pentru o versiune mai nouă de Ubuntu, care poate să nu aibă MySQL 8.0, dar o altă versiune.
CunningFatalist avatar
drapel ru
Este adevărat, dar chiar vreau să fiu foarte specific acolo. Vom primi o notificare în cazul în care trebuie să ne actualizăm mediile MySQL.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.