分类 mysql 下的文章

在mysql8.0之前的mysqldump命令格式为:
mysqldump --column-statistics=0 --host= --user= --password= database > dump_file_path

mysql8.0版本此命令会报错

Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

此处需要添加新参数--column-statistics=0,格式如下:
mysqldump --column-statistics=0 --host= --port= --user= --password= > dump_file_path

如需设置默认参数,可修改mysql配置文件,添加如下参数:

[mysqldump]
column-statistics=0

这是因为你在 MySQL 8.0+ 的 staging 环境导出了 SQL 文件,其中包含了 MySQL 8 特有的字符排序规则(collation):utf8mb4_0900_ai_ci,而你本地环境可能是 MySQL 5.7 或更低版本,它并不支持这种 collation。

解决方案一:升级本地 MySQL 至 8.0+
最彻底的方式是将本地的 MySQL 升级到和 staging 一样的版本,比如 MySQL 8.0.x,这样所有 collation 都能兼容。

解决方案二:修改导出的 .sql 文件,替换 collation
你可以手动或自动把 .sql 文件中的 utf8mb4_0900_ai_ci 改成 utf8mb4_general_ci(或其他你本地支持的 collation)。

验证本地支持哪些 collation
你可以在本地执行以下 SQL 来确认你支持哪些 collation:
SHOW COLLATION WHERE Charset = 'utf8mb4';
输出中你能看到你 MySQL 支持的全部 utf8mb4_* 排序规则,比如:
utf8mb4_general_ci
utf8mb4_unicode_ci
utf8mb4_bin
如果没有 utf8mb4_0900_ai_ci,就说明你本地 MySQL 版本较低。

Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。

Navicat工具下载
下载官网:https://www.navicat.com.cn/download/navicat-premium
根据实际系统情况,选择下载。
双击打开安装包,选择安装路径后直接下一步傻瓜式安装即可。
使用激活工具激活,双击打开
此处一定要断网
此处一定要断网
此处一定要断网
此处一定要断网
选择安装目录(目录一定要在navicat安装的根目录下,也就是instantclient_11_2文件夹的上一级)
点击Patch
然后点击是,请勿选择否,否则需要卸载,重装再来一次.
打开navicat的注册页面,打开激活工具,点击Generate生成Keygen,点击Copy,粘贴到navicat注册页面中!点击激活
点击手动激活
按图中步骤操作,即可激活成功

连接数据库
点击左上角"连接"按钮。
双击MySQL
双击左侧数据库名称,看到图表变亮表示打开连接

操作数据库
右键,选择新建数据库,并填写相关信息。如果数据包含中文,建议设置成utf8。

补充:在选择字符集时,会有两个可选项,utf8mb3和utf8mb4,两者区别如下:
utf8mb3:用3个字节来存储UTF-8字符,占用空间少,但支持的字符集范围有限,大致在0x0000至0xFFFF之间。
utf8mb4:用4个字节来存储UTF-8字符,支持的字符集范围更广,大致在0x00000000至0x10FFFF之间,包括生僻字、冷门符号以及emoji表情符号等。

双击打开新建的数据库
导入备份文件
右键,选择运行SQL文件。导入成功后点击关闭。

备份数据库
在对应数据库下右键备份按钮,选择新建备份。或者在菜单栏点击备份按钮,点击下方的新建备份。
添加注释、选择备份对象,点击备份,开始数据库备份。
备份成功,点击关闭。

自动备份数据库
点击自动运行,在页面选择新建批处理作业
点击备份,双击提交可用的工作,点击保存按钮,保存配置文件。
点击设置任务计划,在"常规"中选中不管用户是否登录都要运行。
在"触发器"中点击新建,配置自动备份执行时间与周期。(建议备份工作可以在夜间业务量较少的时段进行)
点击确认,需要输入系统管理员的账号密码。
至此,使用navicat进行数据库的备份、还原、自动备份操作就已演示完成。