社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Mysql使用新手,在linux中使用mysql时遇到中文相关的两个问题
操作系统: ubuntu 18.04 LTS
Mysql 版本: 5.7.32
远程工具: Xshell 7
mysql -u$(USERNAME) -p$(PASSWD)
后无法在mysql的命令行操作界面中无法输入中文统一系统编码和mysql的编码,最好统一到UTF8
,使用locale
查看系统语言和编码类型:
查看mysql 当前的编码格式,使用命令show variables like 'character%'
:
需要着重注意的是character_set_database
的值,确保和系统一致,如果不一样,可以使用命令:alter database <数据库名> charset utf8
修改mysql配置,配置文件路径:/etc/mysql/conf.d/mysql.cnf
,确保该配置文件中的[mysql]
配置下没有default-character-set=utf8
操作完上述步骤后,应该可以在mysql的命令行中输入中文字符;但有可能存在问题:无法将中文插入到数据库表中,在中文字符处报错,则需要查看第三个步骤。
问题的关键也在于编码方式,表的编码格式需要和数据库的编码格式保持一致
使用命令:show create table `TABLENAME`
可以看到数据库表的编码格式以及每一列的编码格式,确保要插入中文的那一列的编码格式为utf8
,如果不一样可以使用命令:
ALTER TABLE 表名 CHANGE `列名1` `列名1` varchar(32) CHARACTER SET utf8
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8
整体来说,上述所有的问题归根到底都是编码格式的问题,需要确保操作系统、数据库、数据库表、数据库表的列这几个的编码格式保持一致,才能解决中文输入和乱码的问题。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!