记录一下铁威马NAS创建MariaDB后汉字乱码的填坑过程。
在铁威马的应用中心安装的MariaDB后,创建了数据库,编程连接后读取的表头汉字显示为乱码,而且通过客户端输入表格的汉字也是乱码,显示为??????
在网上查了一下,知道是字符集的问题
上图是正确的字符集配置,可以通过SQL命令进行查询,原来红圈的位置是Latin1,导致汉字乱码
show variables like 'char%'
原以为通过SQL命令可以设置好
SET GLOBAL character_set_client=utf8;
SET GLOBAL character_set_connection=utf8;
SET GLOBAL character_set_database=utf8;
SET GLOBAL character_set_results=utf8;
SET GLOBAL character_set_server=utf8;
运行完这些SQL命令后,数据是改了,但是重启数据库后问题依旧。
搜索了很多资料后,了解需要通过SSH工具解决。这里推荐微软的Termius
铁威马默认的SSH链接端口是9222
所以在Termius进行如下设置
连接后修改 /etc/mysql目录下的my.cnf 文件(MariaDB安装目录里没有client.cnf、server.cnf这两个文件,修改my.cnf就行)
连接成功后显示:
这里需要切换成root最高权限管理员,输入命令
sudo -i
回车后需要输入密码,密码和admin账号的密码是一样的,输入密码的时候不会显示出来,输入正确后直接回车就行,成功后如下所示:
vi命令进入my.cnf文件编辑状态
vi /etc/mysql/my.cnf
回车后显示
在[mysqld]下面加上(我上面的截图已经加好了)
character-set-server = utf8
采用vi命令进行编辑,按a进入编辑,按ESC结束编辑,输入”:”,然后按“x”键进行保存(具体百度搜索一下)
然后重启MaraDB服务就OK了。