项目编码是utf-8,数据库也是utf-8但插入数据中文乱码。
1.首先使用show variables like 'character%';查看数据库输有编码正常情况下应该出character_set_filesystem外都是utf8修改my.ini(或者my-default.ini)
[client]
default-character-set=utf8
在[mysqld]中添加 character-set-server=utf8
2.使用show variables like 'character%';,所有编码除character_set_filesystem都是utf8,问题解决。
二、对于上面若修改my.ini无效则使用下面方式。
*******放心以下方式不会损坏mysql以前的数据******
*******实在不放心也可以备份*******
1.一管理员权限运行cmd,关闭数据库服务
执行sc delete mysql(你的mysql注册服务名),打出[SC] DeleteService 成功 操作成功。
2.执行mysqld install MYSQL --defaults-file="E:\mysql5.7\my.ini"
3.重启服务,net start mysql。配置生效。
ps.mysql5.7 user表的password改为authentication_string
补充mysql5.7 解压版配置过程:(windows环境)
1. 修改配置文件添加,除上面提到的编码设置就是数据目录配置如:
basedir = E:\mysql5.7
datadir = E:\mysql5.7\data
2. 进入sql下的bin目录初始化mysql,mysqld --initialize --user=mysql --console。一定要记录下控制台输出信息在最后冒号后面的字符,那是mysql的初始密码。
3. 安装服务,mysqld install MYSQL --defaults-file="E:\mysql5.7\my.ini"
4.启动mysql 服务。net start mysql。
5. 登录mysql,mysql -u root -p 输入第二步记录的密码。
6. 修改登录密码,初始密码是必须修改的不然不能正常使用数据库。set password = password('新密码');刷新权限flush privileges
7.重新登录。