Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Docs] JumpServer 数据库字符校对集更改 #6918

Closed
ibuler opened this issue Sep 18, 2021 · 0 comments
Closed

[Docs] JumpServer 数据库字符校对集更改 #6918

ibuler opened this issue Sep 18, 2021 · 0 comments

Comments

@ibuler
Copy link
Member

ibuler commented Sep 18, 2021

JumpServer 更改过一次数据库的校对集,已满足搜索区分大小写的问题,后来觉得不区分大小写才是通用的方案,后来的还原了,这个改变是在于创建数据库时指定的默认校对集,utf8_bin 区分大小写,utf8_general_ci (通常这个是默认)是不区分的

mysql> show create database jumpserver;
+------------+--------------------------------------------------------------------------------------+
| Database   | Create Database                                                                      |
+------------+--------------------------------------------------------------------------------------+
| jumpserver | CREATE DATABASE `jumpserver` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */ |
+------------+--------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

然而有时候我们想做转换,搜索时想区分大小写:

更换为 utf8_bin 校对集

  1. 先整体备份数据库,以防万一
$ mysqldump -uroot -h127.0.0.1 -p jumpserver > jumpserver.sql
  1. 导出 jumpserver数据库的表结构,不导出数据
$ mysqldump -uroot -h127.0.0.1  -p --opt -d jumpserver > jms_opt.sql
  1. 导出jumpserver数据库数据,不到处表结构
$ mysqldump -uroot -h127.0.0.1  -p -t jumpserver > jms_data.sql
  1. 修改表结构
sed -i 's@CHARSET=utf8;@CHARSET=utf8 COLLATE=utf8_bin;@' jms_opt.sql
  1. 改完以后可以删掉之前的数据库了
mysql > DROP DATABASE jumpserver;
mysql > CREATE DATABASE jumpserver DEFAULT CHARSET utf8 COLLATE utf8_bin;
  1. 导入表结构和数据
$ mysql -uroot -h127.0.0.1 -p  jumpserver < jms_opt.sql
$ mysql -uroot -h127.0.0.1 -p  jumpserver < jms_data.sql

还原为 utf8_general_ci 校对集

  1. 先整体备份数据库,以防万一
$ mysqldump -uroot -h127.0.0.1 -p jumpserver > jumpserver.sql
$ cp jumpserver.sql jumpserver.sql.$(date '+%Y-%m-%d_%H:%M:%S')

  1. 修改校对集
$ sed -i 's@COLLATE=utf8_bin@@g' jumpserver.sql
$ sed -i 's@COLLATE utf8_bin@@g' jumpserver.sql
  1. 创建新库,使用新库
mysql > CREATE DATABASE jumpserver_v2 DEFAULT CHARSET utf8;
  1. 导入表结构和数据
$ mysql -uroot -h127.0.0.1 -p  jumpserver_v2 < jumpserver.sql
  1. 修改配置文件,使用新数据库
$ vim /opt/jumpserver/config/config.txt
 
DB_NAME=jumpserver_v2
 
$ ./jmsctl.sh restart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants