mysql改变数据库编码无效

设置字符集无效

这是修改之前的字符集
https://img-mid.csdnimg.cn/release/static/image/mid/ask/146804423286150.png

这是我修改字符集的代码
https://img-mid.csdnimg.cn/release/static/image/mid/ask/11158642328614.png

修改之后变成这样
https://img-mid.csdnimg.cn/release/static/image/mid/ask/570274423286190.png

但是重启之后它又还原成之前那样
https://img-mid.csdnimg.cn/release/static/image/mid/ask/627835423286140.png

你想重启数据库之后还有效,去改my.ini

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    在MySQL中修改数据库编码可以通过以下步骤实现:

    1. 查看当前数据库编码
    SHOW VARIABLES LIKE 'character_set_database';
    
    1. 停止MySQL服务
    sudo service mysql stop
    
    1. 修改配置文件my.cnf 找到my.cnf文件,通常可以在以下路径找到:
    /etc/mysql/my.cnf
    /etc/my.cnf
    /usr/local/mysql/etc/my.cnf
    

    添加以下内容:

    [mysqld]
    character_set_server = utf8mb4
    collation_server = utf8mb4_unicode_ci
    

    这里使用的编码是utf8mb4,可以根据需要使用其他编码例如utf8或者gbk。

    1. 修改数据库编码 启动MySQL服务,并登录MySQL,执行以下命令修改数据库编码:
    ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    

    这里将database_name替换成需要修改编码的数据库名称。

    1. 刷新MySQL权限表 执行以下命令刷新MySQL的权限表:
    FLUSH PRIVILEGES;
    

    这样就可以成功修改MySQL的数据库编码了。

    如果设置字符集后重启MySQL又还原成了之前的字符集,可能是因为MySQL的配置文件my.cnf没有保存修改。需要确认my.cnf文件的权限是否正确,修改my.cnf文件权限并保存修改:

    chmod 644 /etc/mysql/my.cnf
    sudo service mysql start
    

    然后重新启动MySQL服务,就可以正常使用修改后的编码了。

    如果还存在问题,可以在命令行中手动执行命令修改编码,例如:

    SET character_set_database=utf8mb4;
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^