最开始安装的mysql-8.0.16-winx64解压版,发现并没有使用my.ini。所以在迁移需要改动my.ini(实际还是可以不需要)时,遇到麻烦,所以卸载了重新安装了mysql-8.0.18-winx64解压版。
主要使用命令mysqldump和source(需要配置系统环境变量或者在bin目录下运行)。导出时:
mysqldump -u root -p123456 dbname[--all-databases >] > filename.sql
提示Error warning,密码显式不安全,就导出失败了。
于是在my.cnf(linux)/my.ini(windows)下添加
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
host =
user=
password=
然后将命令改成为即可。
mysqldump --defaults-extra-file=... \my.ini dbname[--all-databases >] > filename.sql
在服务器上具体备份时:发现提示
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS
因为新版的mysqldump默认启用了一个新标志,通过- -column-statistics=0
来禁用。
导入过程本来利用mysql直接导入失败,所以采取另一种。
登录mysql,选定数据库(use db),然后执行
source ... \filename.sql
即可。
PS:
其实可以不修改配置文件,只需要将-p后密码不输入,就会在之后的隐藏式输入即可。
mysqldump --column-statistics=0 -h ip -u root -p dbname > filename.sql