title: mysql 问题
date: 2018-10-16 18:43:32
categories:

  • mysql
    tags:
  • mysql

引言

记录mysql使用过程中遇到的一些问题和解决方法

1 发生系统错误1067

net start mysql
MySQL 服务正在启动 ...
MySQL 服务无法启动。
系统出错。
发生系统错误 1067。

在启动服务器的时候,出现上面的错误的时候,可以看一下是否是配置文件中有问题。我这里是刚安装完成mysql,然后修改配置文件之后出现了问题。之后发现是配置文件中文件路劲的问题。
主要是因为反斜杠和正斜杠使用时需要注意的区别。

2 编码问题

问题描述:[Err] 1366 - Incorrect string value: ‘\xF0\x9F\x99\x8F \xF0…’ for column ‘content’ at row 1
从 MySQL 5.5.3 开始,MySQL 支持一种 utf8mb4 的字符集,这个字符集能够支持 4 字节的 UTF8 编码的字符。 utf8mb4 字符集能够完美地向下兼容 utf8 字符串。在数据存储方面,当一个普通中文字符存入数据库时仍然占用 3 个字节,在存入一个 Unified Emoji 表情的时候,它会自动占用 4 个字节。所以在输入输出时都不会存在乱码的问题了。由于 utf8mb4 是 utf8 的超集,从 utf8 升级到 utf8mb4 不会有任何问题,直接升级即可;

因为自己使用的版本低于5.5.3,之后找了一个5.6.24版本的,并在my.ini文件中添加了:

[mysqld]
character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
[client]
default-character-set=utf8mb4
[mysql]
default-character-set = utf8mb

之后查看具体的编码列表,如下:主要是关于编码修改成utf8mb4,之后就可以存储这种表情符号了。

mysql> show variables like 'character%';
+--------------------------+-----------------------------+
| Variable_name            | Value                       |
+--------------------------+-----------------------------+
| character_set_client     | utf8mb4                     |
| character_set_connection | utf8mb4                     |
| character_set_database   | utf8mb4                     |
| character_set_filesystem | binary                      |
| character_set_results    | utf8mb4                     |
| character_set_server     | utf8mb4                     |
| character_set_system     | utf8                        |
| character_sets_dir       | C:\software\mysql5.6\mysql-5.6.24-win32\share\charsets\