ฉันพยายามที่จะสร้าง มายเอสคิวแอล
บน ภาพนักเทียบท่า 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/
แต่มันไม่ทำงาน
ฉันขอถามได้ไหม ฉันจะแก้ไขปัญหานี้ได้อย่างไร
รอข้อเสนอแนะ ขอบคุณ!