讓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就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM