Score:0

เกิดข้อผิดพลาดในการเชื่อมต่อซ็อกเก็ตขณะสร้าง mysql บนอิมเมจนักเทียบท่า Ubuntu 20.04

ธง in

ฉันพยายามที่จะสร้าง มายเอสคิวแอล บน ภาพนักเทียบท่า Ubuntu 20.04โดยใช้ dockerfile และ configuration bash script เพื่อติดตั้งและกำหนดค่า mysql

ไฟล์นักเทียบท่า:

จากอูบุนตู:20.04

รัน apt-get update -qq && apt-get upgrade -y 

ENV MYSQL_DATABASE: 'ทดสอบ'
ENV MYSQL_USER: 'ผู้ใช้ 1'
ENV MYSQL_PASSWORD: 'xxxxx'
ENV MYSQL_ROOT_PASSWORD: 'รูท'

สำเนา .

RUN DEBIAN_FRONTEND=ไม่โต้ตอบ TZ=Etc/UTC apt-get -y ติดตั้ง tzdata

RUN ทุบตี configuration_mysql.sh

เปิดเผย 3306


สคริปต์การกำหนดค่า:

#!/bin/bash

set -e # ออกจากสคริปต์ทันทีที่เกิดข้อผิดพลาดครั้งแรก
#set -x # พิมพ์คำสั่งและอาร์กิวเมนต์เมื่อดำเนินการ

# ตรวจสอบว่ามีการติดตั้งสภาพแวดล้อม MySQL แล้วหรือไม่
RUN_ONCE_FLAG=~/.mysql_env_build_time
MYSQL_PASSWORD="รูท"

ถ้า [ -e "$RUN_ONCE_FLAG" ]; แล้ว
  echo "ติดตั้งสภาพแวดล้อม MySQL Server แล้ว"
  ทางออก 0
ไฟ

# อัปเดตดัชนีแพ็คเกจ Ubuntu
apt-รับการปรับปรุง -y -qq


# ติดตั้ง MySQL 5.5
echo "mysql-server mysql-server/root_password รหัสผ่าน $MYSQL_PASSWORD" | debconf-set-selections
echo "mysql-server mysql-server/root_password_again รหัสผ่าน $MYSQL_PASSWORD" | debconf-set-selections
apt-get install -y mysql-เซิร์ฟเวอร์

#กำหนดค่า MySQL
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
sed -i '/\[mysqld\]/a\lower_case_table_names=1' /etc/mysql/my.cnf
echo "ตั้งค่ารหัสผ่าน MySQL เป็น '${MYSQL_PASSWORD}' อย่าลืมลบ ~/.mysql.passwd" | ที ~/.mysql.passwd; 
mysql -u root -p $MYSQL_PASSWORD -e "GRANT ALL ON *.* TO root@'%' ระบุโดย '$MYSQL_PASSWORD'; FLUSH PRIVILEGES;";
บริการ mysql เริ่มต้นใหม่
121.122.1
# ติดตั้งการอ้างอิงพื้นฐาน
echo "กำลังติดตั้ง unzip, git และ curl"
apt-get install -y เปิดเครื่องรูด git curl

# กำหนดค่าสีพรอมต์
sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' ~/.bashrc
echo 'แหล่งที่มา ~/.bashrc' >> ~/.bash_profile
ที่มา ~/.bash_profile

# ทำความสะอาดบรรจุภัณฑ์ที่ไม่จำเป็น
apt-get autoremove -y
apt-รับทำความสะอาด

# ตั้งค่าสถานะ "เรียกใช้ครั้งเดียว"
วันที่ > $RUN_ONCE_FLAG

อย่างไรก็ตาม สคริปต์การกำหนดค่า (บรรทัดที่ 29) ส่งคืนข้อผิดพลาดต่อไปนี้:

ป้อนรหัสผ่าน: ข้อผิดพลาด 2002 (HY000): ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ในเครื่องผ่านซ็อกเก็ต '/var/run/mysqld/mysqld.sock' (2)
คำสั่ง '/bin/sh -c bash configuration_mysql.sh' ส่งคืนรหัสที่ไม่ใช่ศูนย์: 1

ฉันได้ลองเปลี่ยนการอนุญาตโดยผ่าน:

chown mysql:mysql /var/run/mysqld/
chmod -R 777 /var/run/mysqld/

แต่มันไม่ทำงาน ฉันขอถามได้ไหม ฉันจะแก้ไขปัญหานี้ได้อย่างไร รอข้อเสนอแนะ ขอบคุณ!

โพสต์คำตอบ

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