alter database <数据库名> character set utf8;
truncate table `tablename`; 主键自动增加重置和清除数据
修改mysql数据库的字符编码
mysql> set character_set_client=utf8 ;
mysql> set character_set_connection=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_results=utf8 ;
mysql> set character_set_server=utf8 ;
mysql> set character_set_system=utf8 ;
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
首先通过 show variables like 'character_set_%';
查看mysql字符集情
默认编码为 latin1
然后关闭数据库
在mysql安装目录下找到my.ini文件
在其中添加
1 2 |
|
在[mysqld]
下添加
1 |
|
重启mysql
就能将mysql数据库默认编码改为utf-8
网上很多资源都是在[mysqld]
下添加
1 |
|
如果这样改会导致5.7版本mysql无法打开
所以要改为
1 |
|
注意:改完后,要删除数据库中所有数据,才能使用。
首先以管理员身份打开命令行窗口,注意是管理员身份,不然无权限访问。之后输入命令“tasklist| findstr "mysql"”,用于查找mysql的残留进程。果不其然,确实存在mysql的残留进程,难怪一直提示MySQL服务处于正在启动或者停止的状态中,此时要做的就是杀死MySQL进程。
之后输入命令
“taskkill/f /t /im mysqld.exe”,
就可以将mysql残留进程全部杀死了,再次输入命令
“tasklist| findstr "mysql"”,
查看是否还留有有其他的mysql残留进程,如果还有,则继续杀死,直到完全杀死进程为止,
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8