一、场景说明
1、数据库在远程服务器,需要用堡垒机登录
2、无法使用navicat连接
3、要求:将sql文件通过mysql命令导入数据库
4、结果:原始命令创建数据库后,导入时发现乱码报错
5、本文章存在意义: 对乱码情况进行说明并给出解决方案,对命令进行备份以便后续出现类似问题
二、准备工作
1、假如已经能够连接远程服务器
2、假设服务器已经安装好了MySQL
3、假设sql文件已经准备好【已上传服务器】
三、解决方案
1、创建数据库
1)连接数据库
mysql -u root -p
说明: 密码自行输入
2)查看现有数据库
show databases;
3)创建数据库
create database demo;
4)查看创建的数据库的编码
show create database demo;
示例图:
说明1: 有的编码不是utf8,可以进行修改
5)修改数据库编码
alter database demo character set utf8;
示例图:
2、导入SQL
1)选择数据库
use demo;
2)导入sql
source /opt/sql/demo.sql;
说明:导入时,失败不会拦截,也没有打印日志[或许有导入日志方案,但是本人未找到]
3、其他命令备份
1)查看mysql字符集
show variables where Variable_name like '%char%';
2)查看数据库字符集
show create database demo;
3)查询数据表字符集
show create table t_demo;
4)修改数据库字符集
set character_set_client=utf8; set character_set_connection=utf8; set character_set_database=utf8; set character_set_results=utf8; set character_set_server=utf8; set character_set_system=utf8; set collation_connection=utf8; set collation_database=utf8; set collation_server=utf8;
5)修改数据表字符集
alter table t_demo character set utf8; alter table t_demo character set utf8mb4; ALTER TABLE t_demo MODIFY install_address varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '安装地址(详细地址)';
6)修改表字段字符集
ALTER TABLE t_demo MODIFY install_address varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '安装地址(详细地址)';
~~