登录本地 MySQL
mysql -u root -p
输入密码: 123456
查看服务器字符集
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
查看所有数据库字符集
SELECT schema_name, default_character_set_name, default_collation_name
FROM information_schema.SCHEMATA;
查看 trade 数据库字符集
SELECT default_character_set_name, default_collation_name
FROM information_schema.SCHEMATA
WHERE schema_name = 'trade';
统一字符集
修改 MySQL 配置文件: my.ini 或 my.cnf
如果没有的话先创建:
-
手动创建
在 MySQL 安装目录创建 my.ini
C:\Program Files\MySQL\MySQL Server 8.0\my.ini
-
在cmd中执行命令
在 MySQL 安装目录创建 my.ini
notepad "C:\Program Files\MySQL\MySQL Server 8.0\my.ini"
填写内容:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
保存并重启 MySQL
再次确认sql文件的字符集
指定字符集并导出数据库
mysqldump -u root -p --default-character-set=utf8mb4 trade > /root/trade.sql
下载到本地:
scp root@服务器ip:/root/trade.sql E:\new\
在本地 CMD 导入
mysql -u root -p --default-character-set=utf8mb4 trade < E:\new\trade.sql
或者登录数据库,然后:
USE trade;
SOURCE E:\new\trade.sql;
查看导入进度
方法1:查看 MySQL 进程
# 打开另一个 CMD,执行
mysql -u root -p -e "SHOW PROCESSLIST;"
方法2:查看数据是否在增加
# 查看表行数(如果能看到表)
mysql -u root -p -e "USE trade; SELECT COUNT(*) FROM zt_user;"
方法3:查看导入窗口
导入窗口会滚动显示 SQL 执行信息,如果一直在动说明还在导入。
查看 SQL 文件大小
方法1:在本地查看
# 在 CMD 或 PowerShell 中
dir E:\new\trade.sql
# 或
ls -lh E:\new\trade.sql
方法2:在服务器上查看
# 在服务器上
ls -lh /root/trade.sql
方法3:查看文件详细大小
# Windows
dir E:\new\trade.sql | find "trade.sql"
# 或显示字节数
dir E:\new\trade.sql /c
# 方法2:用 PowerShell
Get-Item E:\new\trade.sql | Select-Object Name, Length
快速查看(在 PowerShell)
# 查看文件大小(MB)
(Get-Item E:\new\trade.sql).Length / 1MB
# 显示详细
Get-Item E:\new\trade.sql | Select-Object Name, @{Name="Size(MB)";Expression={[math]::Round($_.Length/1MB,2)}}
查看导入进度的方法
打开另一个 CMD,实时监控
# 每 10 秒查看一次表数量
watch -n 10 "mysql -u root -p123456 -e 'USE trade; SHOW TABLES;' 2>nul"