29 เมษายน 2024

การแก้ไข เพิ่ม config lower_case_table_names = 1 แล้ว start mysql 8.0 ไม่ขึ้นใน Ubuntu 22.04

กรณีทำ Server ใหม่ และยังไม่ได้ Dump Data เข้ามาเท่านั้น

หากคุณมีปัญหาเพิ่ม config lower_case_table_names = 1 ใน /etc/mysql/mysql.conf.d/mysqld.cnf แล้ว start mysql ไม่ขึ้น ใน ubuntu 22.04 เรามีวิธีแก้ไขดังนี้

1.หยุดบริการ MySQL

sudo service mysql stop

2.ลบไดเร็กทอรีข้อมูล MySQL

sudo rm -rf /var/lib/mysql

3.สร้างไดเร็กทอรีข้อมูล MySQL ใหม่

sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
sudo chmod 700 /var/lib/mysql

4.เพิ่ม lower_case_table_names = 1 ไปยังส่วน [mysqld] ใน /etc/mysql/mysql.conf.d/mysqld.cnf

5.สร้างฐานข้อมูล MySQL ใหม่ด้วย

sudo mysqld --defaults-file=/etc/mysql/my.cnf --initialize --lower_case_table_names=1 --user=mysql --console

6.เริ่มต้นบริการ MySQL

sudo service mysql start

7.ตรวจสอบรหัสผ่านที่สร้างใหม่สำหรับผู้ใช้ root ของ MySQL

sudo grep 'temporary password' /var/log/mysql/error.log

8.login เข้า mysql ด้วยรหัสที่ได้จากคำสั่งก่อนหน้านี้

sudo mysql -u root -p

9.เปลี่ยนรหัสผ่าน

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPa$$w0rd';

หรือคุณสามารถเรียกใช้สคริปต์ “harden” ได้ ในการเปลี่ยนรหัสผ่าน root

sudo mysql_secure_installation

10.หลังจากเปลี่ยนรหัสผ่านแล้ว login เข้า mysql อีกครั้ง

sudo mysql -u root -p

11 เรียกใช้คำสั่งเพื่อตรวจสอบว่า lower_case_table_names = 1 หรือไม่

SHOW VARIABLES LIKE 'lower_case_%';

ผลที่ได้ควรเป็น lower_case_table_names = 1