zoukankan      html  css  js  c++  java
  • 让MySQL支持Emoji表情 mysql 5.6

    最近在做微信相关的项目,其中MySQL 要存储emoji表情,因此发现我们常用的utf8 字符集根本无法存储表情。网上有不少替代方案。本人还是采用了修改MySQL字符集的方案简单快捷。

    首先将我们数据库默认字符集由utf8 更改为utf8mb4,对应的表默认字符集也更改为utf8mb4  已经存储表情的字段默认字符集也做了相应的调整。

    SQL 语句如:

    # 修改数据库:

    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

    # 修改表:

    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    # 修改表字段:

    ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

     

     

    其次修改MySQL配置文件

    新增如下参数:

    [client]

    default-character-set = utf8mb4

    [mysql]

    default-character-set = utf8mb4

    [mysqld]

    character-set-client-handshake = FALSE

    character-set-server = utf8mb4

    collation-server = utf8mb4_unicode_ci

    init_connect='SET NAMES utf8mb4'

    最后检查环境变量 和测试 SQL 如下:

    mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

    +--------------------------+--------------------+

    | 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              |

    | collation_connection    | utf8mb4_unicode_ci |

    | collation_database      | utf8mb4_unicode_ci |

    | collation_server        | utf8mb4_unicode_ci |

    +--------------------------+--------------------+

    遇到问题如下:

     rows in set (0.00 sec)

    解决办法:

    mysql:sql alter table 修改列属性的字符集

    //这里要写两次属性名

    alter table tweets change WeiboContent WeiboContent varchar(350) character set utf8mb4 collate utf8mb4_unicode_ci;

    //或者

    alter table tweets modify column WeiboContent varchar(350) character set utf8mb4 collate utf8mb4_unicode_ci default null;

     

     

     

    安装mysql后登录提示:ERROR 1045 (28000): Access denied for user

    error: 'Access denied for user 'root'@'localhost' (using password: NO)'

    安装完成后,连接到MySQL服务时输入命令 “ mysql -uroot -p ” ,因为时第一次登录,未设置密码,直接回车,就遇到了这个问题,错误信息如下'root'@'localhost' (using password:yes)

    解决如下:

    1.停止mysql服务

    systemctl stop mysqld.service

    2.修改配置文件无密码登录

    vim  /etc/my.cnf

    在最后加上

    skip-grant-tables

    保存

    3.启动mysql

    systemctl  start  mysqld.service

    4.登录mysql

    mysql -u root

    注意这里不要加-p

    5.修改密码,mysql5.7用此语法

    use mysql;

    update mysql.user set authentication_string=password('123456') where user='root' ;  

    6.回到第二部把刚加的那句删掉

    保存,重启mysql就可以了

  • 相关阅读:
    Linux中权限管理之文件特殊权限
    Linux中权限管理之ACL权限
    Linux用户管理命令
    【并发编程】实现多线程的几种方式
    “数据中台”的再思考
    软件工程六大设计原则总结,案例演示
    你必须要知道的移动端开发知识
    【搞定面试官】你还在用Executors来创建线程池?会有什么问题呢?
    EasyCode实现数据库到Swagger全自动化
    【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)
  • 原文地址:https://www.cnblogs.com/Xingtxx/p/11745647.html
Copyright © 2011-2022 走看看