Mysql数据库常用方式

概要:

  • 修改数据库编码;
  • 更改数据库名;

修改数据库编码:

utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。

1. 先修改my.ini

my.ini 文件,找到以下几项或者在[client]、[mysql]、[mysqld]下面按照如下位置添加对应编码,设置为utf8mb4;我的是MySQL5.6版本,my.ini没有再安装目录,在以下目录:C:\ProgramData\MySQL\MySQL Server 5.6

1
2
3
4
5
6
7
8
9
[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'

重启MySQL服务,查看编码的脚本:

1
2
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

2. 数据库连接的配置

数据库连接参数中:
characterEncoding=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。
而autoReconnect=true是必须加上的。

3. 修改列编码

将数据库和已经建好的表也转换成utf8mb4
更改数据库编码:

1
ALTER DATABASE LX_NOTE CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

更改表编码:

1
ALTER TABLE TABLE_NAME SYS_MENU TO CHARACTER SET utf8mb4 COLLATEutf8mb4_general_ci; 

如有必要,还可以更改列的编码

更改数据库名

1. !!!备份数据库!!!

2. 脚本 mysql_rename.sh

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
mysql -uroot -p'lucifer' --host=127.0.0.1 -e 'create database if not exists LX_NOTE DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci'

list_table=$(mysql -uroot -plucifer --host=127.0.0.1 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='SSM_NOTE'")

for table in $list_table
do
#echo $TABLE
mysql -uroot -plucifer --host=127.0.0.1 -e "rename table SSM_NOTE.$table to LX_NOTE.$table"
done

3. cmd命令窗口运行该脚本,参考命令如下:

1
C:\Program Files\MySQL\MySQL Server 5.6\bin>e:mysql_rename.sh

4. 完成后就发现数据库已经移动过去了。