Điểm:2

Tự động hóa (không) cài đặt MySQL

lá cờ ru

Tôi hiện đang cố gắng tự động xóa và cài đặt lại MySQL trên Ubuntu (đối với Vagrant).Tuy nhiên, tôi đang gặp phải nhiều vấn đề với điều đó.

Đây là những gì tôi có:

# Gỡ cài đặt phiên bản MySQL cũ
Sudo systemctl dừng 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

#...
# Làm những việc khác.
#...

# Cài đặt MySQL mới nhất, xem
# https://gist.github.com/kpietru/a3cb08ee074a4418795a
MYSQL_PASSWORD="gốc"

xuất MYSQL_PASSWORD="$MYSQL_PASSWORD"

Sudo mong đợi -c '
    sinh ra cài đặt apt-get -y mysql-server

    mong đợi người dùng "*mật khẩu*:"
    gửi "$env(MYSQL_PASSWORD)\r"

    mong đợi người dùng "*mật khẩu*:"
    gửi "$env(MYSQL_PASSWORD)\r"

    mong đợi "\r"
    gửi "nhập\r"

tương tác'

Sudo systemctl vạch mặt mysql.service
sudo dịch vụ mysql bắt đầu

mysql --version

Điều này hoạt động và hộp Vagrant của tôi tải tốt. Tuy nhiên, khi tôi cố gắng sử dụng MySQL như vậy:

mysql -uroot -proot

Tôi nhận được thông báo lỗi liên quan đến ổ cắm (xem https://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq). Tôi không muốn sửa lỗi ở đây. Tôi muốn các tập lệnh trước hoạt động chính xác. Do đó, tôi sẽ không đi sâu vào việc sửa lỗi ổ cắm.

Trực giác đầu tiên của tôi là sử dụng Sudo apt-get thanh lọc -y mysql-* thay vì gỡ bỏ, nhưng sau đó tôi phải tự động hóa phản hồi kịp thời bằng chờ đợi. Tôi đã cố gắng làm điều đó với tự mong đợi, nhưng chờ đợi tập lệnh được tạo dường như không hoạt động.

Các bạn có thể giúp tôi không? Có bất cứ điều gì khác tôi có thể thử?

Cảm ơn trước & cổ vũ

Điểm:1
lá cờ ru

Một đồng nghiệp của tôi đã tìm ra giải pháp cho vấn đề này. Tôi sẽ đăng nó ở đây để tôi có thể đỡ cho những người khác đau đầu :)

# Xóa các phiên bản MySQL trước đó
################################################# ##################

xuất DEBIAN_FRONTEND=không tương tác

Sudo systemctl dừng mysql
Sudo apt-get remove mysql-* -y

Sudo dpkg --configure -a
sudo -E apt-get thanh lọc mysql-*
sudo rm -rf /etc/mysql/var/lib/mysql/var/log/mysql

sudo apt-get autoremove
sudo apt-get autoclean

# Cài đặt MySQL 8.0
################################################# ##################

sudo apt-get cập nhật
sudo apt install mysql-server-8.0 -o Dpkg::Options::="--force-confnew" -y

# Kích hoạt xác thực mật khẩu gốc
#
# Nếu không, bạn sẽ phải mở MySQL với quyền root:
# `sudo mysql -u root`
################################################# ##################

echo "THAY ĐỔI NGƯỜI DÙNG 'root'@'localhost' ĐƯỢC XÁC ĐỊNH VỚI mysql_native_password BẰNG 'root'; QUYỀN RIÊNG TƯ;" | gốc sudo mysql -u
lá cờ jp
Dan
Bạn sẽ có thể sử dụng `Sudo apt install mysql-server` thay vì `Sudo apt install mysql-server-8.0` (tức là xóa phiên bản) để tập lệnh của bạn vẫn hoạt động nếu sau này bạn sử dụng nó cho phiên bản Ubuntu mới hơn. có thể không có MySQL 8.0 nhưng một số phiên bản khác.
CunningFatalist avatar
lá cờ ru
Điều đó đúng, nhưng tôi thực sự muốn nói rất cụ thể ở đó. Chúng tôi sẽ nhận được thông báo trong trường hợp chúng tôi phải cập nhật môi trường MySQL của mình.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.