修改mysql默认字符集为latin1_关于utf 8:mysql将默认字符集latin1更改为utf8

我有PHP 5.5.9和MySQL 5.5.43 Innodb。这是在Kubuntu LTS /etc/mysql/my.cnf中

printf("当前字符集:%s n",mysqli_character_set_name($ conn));

当前字符集:latin1

我试过了

默认字符集= utf8

首先但是然后我的mysql服务器没有重启

然后我尝试了

字符集服务器= utf8

然后我的mysql shell没有启动

我该如何解决这个问题?我已经与

init_connect ='设置名称utf8'

解决了非root用户的问题,但是字符集保持不变(它仅显示为非特权用户UTF8,它仍然是Latin1)。

如果smnd可以告诉我在哪里应该使用utf8mb4?还在my.cnf文件中吗?我将表放在utf8中,并且已经将我正在使用的表迁移到utf8mb4 ...

另一个问:适用于Linux(Kubuntu)服务器的IS:

https://www.youtube.com/watch?v=3M1Wpw4uOoM

请帮助我,谢谢lilaum.com的Gregor

PHP手册说:

MySQLnd always assumes the server default charset. This charset is sent during connection hand-shake/authentication, which mysqlnd will use.

MySQLnd是PHP 5.4及更高版本随附的MySQL本机驱动程序。

不幸的是,尽管已使用以下条目配置了/etc/mysql/my.cnf,但即使在我的系统中(Debian Jessie 8.3上带有MySQL 5.5.47的PHP 5.6.17),我也必须确认

[mysqld]

character-set-server=utf8

[mysql]

default-character-set=utf8

mysqlnd似乎不假定服务器默认字符集(utf8),但将连接字符集设置为latin1并整理为latin1_swedish(考虑到MySQL AB是一家瑞典公司,可能是默认值)。

因此,从PHP应用程序进行连接时,似乎没有永久的方法来设置utf8字符集。你必须打电话

$mysqli->set_charset("utf8")

每次连接后。可以将其嵌入自定义的" dbconnect" PHP函数中,以提供某种抽象层。

mysqli_set_charset('utf8')。

对于root连接,将忽略init_connect。

utf8mb4实际上是utf8的超集。中文和新表情符号都需要它,再加上一些晦涩的字符集。

是否可以在全球范围内一劳永逸地做到这一点?

而utf8mb4是真正的utf8 ...我想我必须在mysql中进行更改,因为我已经在php.ini中添加了default_charset =" UTF-8",但没有成功。 如果(我相信是)可以一次在全球所有服务器上更改此指令,请更新我,谢谢...

在全局范围内,在my.cnf中,这可能会为将来的操作建立utf8mb4:character_set_server=utf8mb4 这将需要以其他方式进行处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值