Facebook Twitter Instagram
    TecAdmin
    • Home
    • FeedBack
    • Submit Article
    • About Us
    Facebook Twitter Instagram
    TecAdmin
    You are at:Home»General Articles»(Resolved) Unknown collation: utf8mb4_0900_ai_ci

    (Resolved) Unknown collation: utf8mb4_0900_ai_ci

    By RahulJuly 30, 20222 Mins Read

    A collation is a set of rules that defines how to compare and sort character strings in a database server. In this tutorial, we are discussing an error faced during database restoration on another server.

    Advertisement

    Let’s see the problem and solution to the issue faced recently:

    Problem

    During the migration of a web application, I got the below error while restoring a database on another server. The collation id may differ based on the MySQL version.

    Error message:

    Error 1273 (HY000) at line 25 Unknown collation: 'utf8mb4_0900_ai_ci'
    

    See the error screenshot during database restoration.

    Error 1273 (HY000) Unknown collation: 'utf8mb4_0900_ai_ci'

    Here you go with a solution.

    Solution

    After a little investigation, I found that the MySQL server running on the destination is an older version than the source. So we got that the destination server doesn’t contain the required database collation.

    Then we do a little tweak in the backup file to resolve this. Edit the database backup file in text editor and replace “utf8mb4_0900_ai_ci” with “utf8mb4_general_ci” and “CHARSET=utf8mb4” with “CHARSET=utf8“.

    Replace the below string:

    ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
    

    with:

    ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
    

    Save your file and restore the database.

    The Linux system users can use the sed command to replace text in files directly.

    sed -i 's/utf8mb4_0900_ai_ci/utf8_general_ci/g' backup.sql  
    sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' backup.sql  
    

    That it. after the above changes, the database was successfully restored!

    Hope this is solution helped you to resolve “Unknown collation: ‘utf8mb4_0900_ai_ci’” issue.

    FAQ MySQL
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp

    Related Posts

    Implementing a Linux Server Security Audit: Best Practices and Tools

    15 Practical Examples of dd Command in Linux

    Iptables: Common Firewall Rules and Commands

    View 23 Comments

    23 Comments

    1. Arsh on February 21, 2023 5:39 pm

      Thanks mate. It solved my issue. I tried solutions from StackOverflow but none of them helped. Only this one helped.

      Reply
    2. Mohsin on January 10, 2023 8:29 am

      I installed `brew reinstall gnu-sed` and used `gsed` on mac with the same commands. Worked.

      Reply
    3. deepa on December 29, 2022 6:06 am

      its really very helpful thank you

      Reply
    4. Daniël Riezebos on November 16, 2022 10:40 am

      This helped me greatly, thank you very much!

      Reply
    5. Rez on October 27, 2022 7:49 am

      It worked. Thank you.

      Reply
    6. Mujeeb on October 18, 2022 1:50 pm

      yes it really help me alot

      Reply
    7. DHyey on October 6, 2022 2:53 pm

      Thanx! It helped me..

      Reply
    8. Lukas on August 27, 2022 6:07 pm

      This post should be removed, this has a high risk of causing data loss. Moving from utf8 to utf8mb4 doesn’t cause data loss, but moving from utf8mb4 to utf8 removes a byte of data, which is VERY dangerous. Please take this down.

      Reply
    9. samar on July 30, 2022 12:00 pm

      Thanks a lot. It worked for me

      Reply
    10. Nirav on June 25, 2022 5:17 am

      thanks, it is work for me

      Reply
    11. jordi on June 23, 2022 10:00 am

      thanks work!

      Reply
    12. Malvin on June 14, 2022 11:58 am

      And you will loose everything requiring the fourth byte. Emojis for example. But who cares? Ugly hacks made by people that don’t what they are talking about obviously make the world go round. Because using a current version of mySQL would be too much of burden, I guess…

      Reply
    13. John on May 22, 2022 9:35 pm

      This is great! It works for me!

      Reply
    14. ray on March 15, 2022 9:26 pm

      Thank you this was helpful. Just a minor correction on the intro paragraph utf8mb4_general_ci should be utf8_general_ci

      Reply
    15. Georgie on February 22, 2022 7:30 pm

      In my case I also had to add this command:
      “`
      sed -i ‘s/utf8mb4/utf8/g’ backup.sql
      “`

      Reply
    16. Elmer on February 16, 2022 5:53 am

      Funciono Perfecto!

      Gracias!

      Reply
    17. David on January 11, 2022 2:05 pm

      Thank you!!

      Reply
    18. Israel Guido on November 12, 2021 8:12 pm

      On Mac OSX this is correct:
      sed -e ‘s/utf8mb4_0900_ai_ci/utf8_general_ci/g’ oldFile.sql > newFile.sql

      Reply
    19. Felipe on November 9, 2021 5:15 pm

      Thank you!

      Reply
    20. Steve on September 2, 2021 7:38 am

      Thanks for this, I had to leave the CHARSET=utf8mb4 to get my import to work

      Reply
      • zied on April 27, 2022 1:42 pm

        me too

        Reply
      • Malvin on June 14, 2022 12:00 pm

        Otherwise you would be loosing data, like Emojis.

        Reply
    21. michael on August 14, 2021 1:04 am

      You’re a life-saver!

      Reply

    Leave A Reply Cancel Reply

    Advertisement
    Recent Posts
    • Implementing a Linux Server Security Audit: Best Practices and Tools
    • cp Command in Linux (Copy Files Like a Pro)
    • 15 Practical Examples of dd Command in Linux
    • dd Command in Linux (Syntax, Options and Use Cases)
    • Iptables: Common Firewall Rules and Commands
    Facebook Twitter Instagram Pinterest
    © 2023 Tecadmin.net. All Rights Reserved | Terms  | Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.