Linux下通过修改my.cnf使mysql支持表情符号的存储

在做项目的过程中遇到需要存储表情符号的需求,由于起初mysql的编码使用的是utf8(utf8只支持最多3字节的数据),若是使用utf-8编码时在存储表情字符时,java程序将报如“Incorrect string value: '\xF0\x9F\x98\x8E\xE8\xB5...' for column 'xxx' at row 1”的错误,如下图所示:

为了支持完整的utf-8编码,mysql推出了utf8mb4,它是mysql平台上utf8编码的超集,兼容utf8并且能存储4字节的表情字符。
采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题。

1、MySQL的版本
支持utf8mb4的最低mysql版本为5.5.3+,如果低于该版本需先升级到较新版本。

2、MySQL驱动
mysql驱动版本需高于5.1.13,建议版本高些

3、修改MySQL配置文件
修改mysql配置文件my.cnf(windows下为my.ini)
执行命令 vi /etc/my.cnf,在配置文件中添加如下内容:

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux系统中安装MySQL时如果没有my.cnf文件,可以通过以下步骤来创建: 1. 使用终端窗口进入MySQL的安装目录。 2. 使用以下命令创建my.cnf文件:touch my.cnf 3. 使用以下命令编辑my.cnf文件:nano my.cnf 4. 在my.cnf文件中输入配置选项,例如数据库目录、服务器端口等。 5. 保存并退出编辑器。 6. 使用以下命令重启MySQL服务器:service mysql restart 7. 如果还是不能使用,建议参考MySQL官网说明文档和论坛进行解决。 ### 回答2: 在安装Linux操作系统上的MySQL时,用户可能会遇到没有my.cnf文件的情况。my.cnfMySQL配置文件,它必须存在并配置正确,以确保MySQL服务器能够正常工作。如果没有my.cnf文件,我们需要手动创建它,以便进行MySQL的配置。 首先,用户需要确定MySQL服务器安装在哪个目录中。在某些情况下,MySQL安装不在默认目录中,因此用户需要找到安装目录。在Linux系统上,用户可以使用以下命令查找MySQL安装目录: ``` whereis mysql ``` 在确定MySQL服务器的安装目录后,在该目录下搜索是否有默认的my.cnf文件。如果没有发现该文件,则需要创建一个新的my.cnf文件。在Linux中,用户可以使用以下命令创建一个新的my.cnf配置文件: ``` sudo nano /etc/mysql/my.cnf ``` 该命令将打开一个文本编辑器,用户可以配置MySQL的设置。当编辑器打开后,用户可以将以下设置在文件中输入: ``` [client] port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/english skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M log-bin = /var/log/mysql/mysql-bin.log binlog_format = ROW server-id = 1 expire_logs_days = 10 innodb_buffer_pool_size = 16M ``` 最后,当用户完成my.cnf的配置并保存文件后,重新启动MySQL服务器,以使其应用新的设置: ``` sudo /etc/init.d/mysql restart ``` 总结来说,如果在安装Linux操作系统上的MySQL时,没有my.cnf文件,用户需要手动创建一个新的配置文件,并将MySQL的设置配置到文件中。通过将配置文件保存到正确位置并重新启动MySQL服务器,用户可以确保MySQL服务器能够正常工作。 ### 回答3: 在Linux系统中安装MySQL,有时候会发现在安装过程中并没有自动生成my.cnf文件。这是因为MySQL的安装程序默认不会自动生成my.cnf文件,但是my.cnf文件对于MySQL的正常运作来说是非常关键的。 那么,没有my.cnf文件怎么办呢?我们可以手动创建一个my.cnf文件,并进行配置。 首先,我们需要在Linux环境下通过命令行来创建一个my.cnf文件,这里我们使用vi编辑器进行创建。比如我们在终端中输入: ``` vi /etc/my.cnf ``` 然后我们进入vi编辑器中进行编辑。到这里需要注意的是,my.cnf文件有很多个必要的参数需要进行设置,建议不要直接复制已有的my.cnf文件,而是需要根据服务器情况和实际需求来修改配置参数。以下是一份常见的my.cnf配置: ``` [mysqld] # 设置 MySQL 数据库默认的存储引擎 default-storage-engine = InnoDB # 开启二进制日志 log-bin=mysql-bin # MySQL 在0.05秒内无响应将被视为失败 connect_timeout = 0.05 # 连接MySQL时所使用的字符集,如果客户端中出现乱码,可以尝试修改字符集 character-set-server = utf8mb4 # MySQL 的 InnoDB 存储引擎的缓冲区 innodb_buffer_pool_size = 512M # MySQL 的查询缓存 query_cache_type = on query_cache_size = 128M query_cache_limit = 2M # 设置 MySQL 端口号 port = 3306 # 设置 MySQL 的日志位置 log-error=/var/log/mysqld.log ``` 在编辑完my.cnf文件之后,我们需要使用如下命令保存和退出: ``` :wq ``` 最后,我们需要重启MySQL才能让新的配置生效。在CentOS中我们可以使用如下命令进行重启: ``` systemctl restart mysqld ``` 通过以上操作,我们可以手动创建my.cnf文件并进行配置,从而确保MySQL服务正常运行且满足我们特定的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值