Score:2

อัตโนมัติ (un-) ติดตั้ง MySQL

ธง ru

ขณะนี้ฉันกำลังพยายามทำการล้างและติดตั้ง MySQL ใหม่โดยอัตโนมัติบน Ubuntu (สำหรับคนจรจัด)อย่างไรก็ตาม ฉันพบปัญหาหลายอย่างเกี่ยวกับสิ่งนั้น

นี่คือสิ่งที่ฉันมี:

# ถอนการติดตั้ง MySQL เวอร์ชันเก่า
sudo systemctl หยุด mysql
sudo apt-get ลบ mysql-* -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql

# ...
#ทำอย่างอื่น.
# ...

# ติดตั้ง MySQL ล่าสุด ดู
# https://gist.github.com/kpietru/a3cb08ee074a4418795a
MYSQL_PASSWORD="รูท"

ส่งออก MYSQL_PASSWORD="$MYSQL_PASSWORD"

sudo คาดหวัง -c '
    วางไข่ apt-get install -y mysql-server

    คาดหวัง "*รหัสผ่าน* ผู้ใช้:"
    ส่ง "$env(MYSQL_PASSWORD)\r"

    คาดหวัง "*รหัสผ่าน* ผู้ใช้:"
    ส่ง "$env(MYSQL_PASSWORD)\r"

    คาดหวัง "\r"
    ส่ง "ป้อน\r"

มีปฏิสัมพันธ์'

sudo systemctl เปิดโปง mysql.service
sudo บริการ mysql เริ่มต้น

mysql -- รุ่น

ใช้งานได้และกล่อง Vagrant ของฉันโหลดได้ดี อย่างไรก็ตาม เมื่อฉันพยายามใช้ MySQL ดังนี้:

mysql -uroot - รูต

ฉันได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับซ็อกเก็ต (ดู https://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq). ฉันไม่ต้องการแก้ไขข้อผิดพลาดที่นี่ ฉันต้องการให้สคริปต์ก่อนหน้าทำงานได้อย่างถูกต้อง ดังนั้นฉันจะไม่ลงหลุมกระต่ายของการแก้ไขข้อผิดพลาดซ็อกเก็ต

สัญชาตญาณแรกของฉันคือการใช้ sudo apt-get purge -y mysql-* แทน ลบแต่แล้วฉันก็ต้องตอบกลับพร้อมท์โดยอัตโนมัติด้วย คาดหวัง. ฉันพยายามทำอย่างนั้นกับ คาดหวังอัตโนมัติ, แต่ คาดหวัง สคริปต์ที่สร้างขึ้นดูเหมือนจะไม่ทำงาน

พวกคุณช่วยฉันได้ไหม มีอะไรอีกบ้างที่ฉันสามารถลองได้อีก

ขอบคุณล่วงหน้า & ไชโย

Score:1
ธง ru

เพื่อนร่วมงานของฉันสามารถหาวิธีแก้ไขปัญหานี้ได้ ฉันจะโพสต์ที่นี่เพื่อที่ฉันจะได้ปวดหัวคนอื่น :)

# ลบ MySQL เวอร์ชันก่อนหน้า
#################################################### ##################

ส่งออก DEBIAN_FRONTEND=ไม่โต้ตอบ

sudo systemctl หยุด mysql
sudo apt-get ลบ mysql-* -y

sudo dpkg --configure -a
sudo -E apt-get ล้าง mysql-*
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql

sudo apt-get autoremove
sudo apt-get autoclean

# ติดตั้ง MySQL 8.0
#################################################### ##################

sudo apt-get อัปเดต
sudo apt ติดตั้ง mysql-server-8.0 -o Dpkg::Options::="--force-confnew" -y

# เปิดใช้งานการตรวจสอบรหัสผ่านดั้งเดิม
#
# มิฉะนั้นคุณจะต้องเปิด MySQL เป็นรูท:
# `sudo mysql -u ราก`
#################################################### ##################

echo "เปลี่ยนผู้ใช้ 'root' @'localhost' ที่ระบุด้วย mysql_native_password โดย 'root'; FLUSH PRIVILEGES;" | sudo mysql -u รูท
jp flag
Dan
คุณควรจะสามารถใช้ `sudo apt install mysql-server` แทน `sudo apt install mysql-server-8.0` (เช่น การลบเวอร์ชัน) ดังนั้นสคริปต์ของคุณจะยังคงใช้งานได้หากคุณใช้กับ Ubuntu เวอร์ชันที่ใหม่กว่าในภายหลัง อาจไม่มี MySQL 8.0 แต่เป็นเวอร์ชันอื่น
CunningFatalist avatar
ru flag
นั่นก็จริง แต่ที่จริงฉันอยากจะเจาะจงตรงนั้นมาก เราจะได้รับการแจ้งเตือนในกรณีที่เราต้องอัปเดตสภาพแวดล้อม MySQL

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา