MySQL报错的分类与解决方法

无法插入中文字符

  • 报错内容:

    1366 - Incorrect string value: ‘\xE6\x9B\xBE\xE5\x8D\x8E’ for column ‘sname’ at row 1

  • 原因

    MySQL默认配置:

    variable_name value
    character_set_database latin1
    character_set_server latin1

    可通过SHOW VARIABLES LIKE '%char%';查看。

  • 解决方法

    1. 修改C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

      • 找到[mysql]

        在下方添加default-character-set=utf8

      • 找到[mysqld]

        在下方添加character-set-server=utf8

      • 找到[client]

        在下方添加default-character-set=utf8

    2. 重启MySQL,重新登录

      • Win + R - services.msc

      • 找到MySQL57(57为版本号),右键选择重新启动

      • Win + R - cmd(或cmder)

        通过mysql -u -root -p命令并输入密码后访问数据库。

      • 通过SHOW VARIABLES LIKE '%char%';查看,字符集变为utf8即成功修改。


  • 报错内容:

    2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded

  • 原因:

    MySQL8之前的版本中加密规则为mysql_native_password,而在MySQL8以后的加密规则为caching_sha2_password

  • 解决方法:

    在命令行中登录MySQL后,使用命令行:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';