[MySQL] ลืมรหัสผ่าน root ของ MySQL/MariaDB ทำไงดี

[MySQL] ลืมรหัสผ่าน root ของ MySQL/MariaDB ทำไงดี?

ผมเจอปัญหานี้กับตัวเอง เพราะลงโปรแกรมทิ้งไว้นานแล้ว และชีวิตนี้มีรหัสผ่านอีกร้อยแปดพันเก่าที่ต้องจำ สุดท้าย ลืม!!

แล้วจะทำอย่างไรดี?

จากที่ผมลองหาข้อมูลและทดลองปฏิบัติตามมีวิธีง่ายๆ ดังนี้ (แต่ขอบอกก่อนว่าสำหรับเครื่อง DEV น่ะครับ ไม่แนะนำทำบน PRD)

เฉพาะ MySQL version 5.7 ขึ้นไป และ MariaDB version 10 ขึ้นไป ครับ
  1.  หยุด Service MySQL ก่อน ด้วยคำสั่ง "net stop mysql" (run as admin) หรือจะ service.msc ที่ RUN ได้ก็ แล้วหา MySQL service แล้วแต่สะดวกเลย
  2.  สร้างไฟล์ สำหรับ reset password ขึ้นมา แล้ว Copy code ด้านล่างไปใส่ แล้วบันทึกเป็นไฟล์ txt ผมตั้งชื่อ MySQL_reset.txt และบันทึกไว้ที่ Drive C: แล้วกัน.

    MySQL 5.7.6 ขึ้นไป
    ALTER USER 'root'@'localhost' IDENTIFIED BY '[new password]';
    

    MySQL 5.7.5 ลงมา
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    
    
  3.  สั่ง Start MySQL ทาง command line ด้วยคำสั่งนี้ (run as admin)

    "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=c:\MySQL_reset.txt
  4.  ถือว่าเสร็จสิ้นการ reset password กดปุ่ม [CTL]+C ที่หน้า cmd ได้เลย
  5.  Start service MySQL ให้ทำงานตามปกติ ที่ service.msc หรือจะ command line ก็ได้ "net start mysql" (run as admin)
ถือว่าเสร็จสิ้นครับ




    Word 2007 ขึ้นไป แก้ปัญหาพิมพ์สระไม่ได้

    วิธีตรวจสอบว่า Microsoft Office Word ของคุณพิมพ์สระ ภาษาไทยได้ปกติหรือไม่ ทดลองพิมพ์คำว่า "โน็ตบุ็ค" ดูครับ ถ้าพิมพ์ได้ ไม่มีปัญหา แต่ถ้าพิมพ์ไม่ได้ เรามีคำตอบให้ครับ

    วิธีแก้ปัญหาง่ายๆ ดังนี้ครับ

    1. ไปที่ Word Options 
    2. จะมีหน้าต่างประมาณนี้
    word options
    3. ไปที่เมนู ขั้นสูง|advance  โดยหาคำว่า "ใช้การตรวจสอบเรียงลำดับ" หรือ "Use sequence checking"  แล้ว ไม่ต้องเลือก (Uncheck) ไปซะ แล้วกดปุ่ม OK ที่แปลว่า "ตกลง" ไป ดังรูป
    วิธีแก้สระเขียนทับกัน
    เสร็จเรียบร้อยแล้วครับ ลองพิมพ์คำว่า "โน็ตบุ็ค" อีกทีครับ

    Flash Drive ขึ้น Readonly + ข้อมูลหาย (จริงๆโดนซ่อนอยู่)


    ใครเคยเจอปัญหานี้บ้าง ... เชื่อว่าหลายคนตกใจเลยครับ เจอแบบนี้เข้าไป
    แต่เดียวก่อนครับ ใจเย็นๆ หากเจอเคสแบบนี้ FlashDrive เราอาจจะไม่ได้เป็นอะไร ถ้าเรายังเปิดได้ และยังพอมีข้อมูลหลงเหลืออยู่ แต่หากเปิดไม่ได้เลย ขึ้นให้ Format ตลอด อันนี้ของจริงครับ ต้องขอ ลาก่อนนนน 555

    ปัญหานี้เกิดจาก Flash Drive เราติดไวรัส  แล้วไอ้ตัวไวรัสมันก็จะทำการซ่อนไฟล์ทั้งหมดใน Flash Drive เราโดนการเอาไปรวมกองกันอยู่ใน Folder ตัวหนึ่งแล้วเปลี่ยนชื่อ Folder ให้ไม่มีชื่อ พร้อมกับ Hidden ไว้ด้วย แล้วมันก็ร้าย สร้าง Short Cut ปลอมๆ ขึ้นมาเพื่อให้เรา หลง Click เข้าไป เพราะมันตั้งชื่อว่า BackUp พร้อมกับไอคอนรูป Hdd ถ้าใครหลงเชื่อ ก็เสร็จ ติดกันไปละครับ

    วิธีแก้ Flash Drive ขึ้น ReadOnly 
    1.  เปิด command prompt หรือ cmd ขึ้นมา โดยสิทธิ์ Administrator วินโดว์ 7+ 
    2. พิมพ์คำสั่ง "diskpart" แล้ว [enter]
    3. พิมพ์คำสั่ง "list disk" แล้ว [enter] แล้วดูว่า Flash Drive เราอยู่ Disk ลำดับที่เท่าไหร่ (1,2,3,...) สังเกตุดูที่ size หาก Flash Drive 8 GB ก็จะขึ้นประมาณ 7 พันกว่า MB
    4. พิมพ์คำสั่ง "select disk # (หมายเลขลำดับ)" แล้ว [enter]
    5. พิมพ์คำสั่ง "attributes disk clear readonly" แล้ว [enter]
    6. พิมพ์ exit แล้ว [enter]
    เท่านี้ก็เรียบร้อยครับ Flash Drive เราก็สามารถสร้าง Files and Folders ได้แล้ว แต่....
    ยังไม่จบครับ เรายังไม่ได้ไฟล์งานเราคืนมา ... เรามากู้ไฟล์ที่ไวรัสซ่อนไว้กัน

    วิธีแก้ Hidden Files ใน Flash Drive 
    1.  เปิด Command Prompt เหมือนเดิมครับ
    2.  พิมพ์ Drive: Label Flash Drive เราได้เลยครับ สังเกตุดูที่ Explorer ได้เลย โดยการ กดปุ่ม [windows]+[E] แล้วจะเห็นว่า Flash Drive เราอยู่ Drive ไหน 
    3. แล้วพิมพ์ "attrib -h -r -s  /S /D" ในหน้าต่าง Command Prompt แล้วกดปุ่ม [enter]
    4. รอจนกว่าจะเสร็จ
    เพียงเท่านี้เราก็จะได้ไฟล์งานเรากลับมาแล้ว แต่ชื่อ Folder มันจะไม่มี ตามที่กล่าวไว้ข้างบน เราก็เปลี่ยนชื่อ Folder ใหม่เลยครับ :)

    แก้ปัญหา "Spooler is not running"




    ใครที่เคยเจอปัญหานี้ ... รับรองครับว่า หาวิธีแก้ปวดหัวเลยที่เดียว ไม่ต่างกันกับผมครับ  แต่ ผมใช้วิธีชั่วคราวแก้ไขเฉพาะหน้าไปก่อน ด้วยวิธีการ reset service spooler เอาครับ

    เวลา Print แล้วขึ้น "Spooler is not running"   (วิธีแก้ปัญหาเฉพาะหน้า)

    1. เปิด Command prompt ขึ้นมา Windows 7,Windows 8.1,Windows 10 ต้อง runas Administrator ด้วย [ปุ่ม windows + r] [ปุ่ม windows + x]->command prompt (admin)
    2. พิมพ์ net stop spooler & net start spooler แค่นี้เรียบร้อยครับ

    Batch Script คัดลอกแล้วไปวางใน notepad.exe แล้ว บันทึกเป็น fixspooler.bat ไว้ที่หน้าจอได้เลยครับ
    @echo off
    cls
    title starting spooler ...
    net stop spooler
    net start spooler
    exit
    
    ส่วนวิธีแก้ปัญหาแบบ permanent เดี๋ยวมาเพิมเติม น่ะครับ (ไปซ้อมเต้นก่อน)

    Bash script สำรองข้อมูลฐานข้อมูล MySQL


    Bash script for backup MySql database


    #!/bin/bash
    
    USER="your_user"
    PASSWORD="your_password"
    OUTPUT="/Users/rabino/DBs"
    
    rm "$OUTPUTDIR/*gz" > /dev/null 2>&1
    
    databases=`mysql --user=$USER --password=$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
    
    for db in $databases; do
    if [[ "$db" != "information_schema" ]] && [[ "$db" != _* ]] ; then
    echo "Dumping database: $db"
    mysqldump --force --opt --user=$USER --password=$PASSWORD --databases $db > $OUTPUT/`date +%Y%m%d`.$db.sql
    gzip $OUTPUT/`date +%Y%m%d`.$db.sql
    fi
    done