作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Bamboo 构建脚本,它向 MySQL Admin 提供 shell 并执行以下操作:
"C:\Program Files\MySQL\MySQL Utilities 1.6\mysqladmin" -f -h server -u user -p pwd drop db1
"C:\Program Files\MySQL\MySQL Utilities 1.6\mysqladmin" -f -h server -u user -p pwd create db1
"C:\Program Files\MySQL\MySQL Utilities 1.6\mysqldump" db2 -h server -r c:\temp\db2.sql -n --no-data -u user -p pwd
"C:\Program Files\MySQL\MySQL Utilities 1.6\mysql" -h server -D db1 -u user -p pw < c:\temp\db2.sql
代码本质上删除了数据库,重新创建它并从默认数据库(db2)加载
问题是 db2 是以下字符集/排序规则
而复制的数据库是;
当我们的 MySQL 批量加载器运行并遇到数据中的某些字符时,这会产生问题,例如:
MySql.Data.MySqlClient.MySqlException: Invalid utf8mb4 character string: 'TO CHARGE VOLAC '
我在这个网站和 Google 上花了一些时间,但我所尝试的一切都不起作用。
有人能给我指出正确的方向吗?
最佳答案
为了回答这个问题,我将“默认数据库”解释为您要复制的数据库,将“复制的数据库”解释为您尝试复制到的新数据库。
如果你使用SQL命令而不是mysqladmin创建新数据库,你可以设置新数据库的字符集:
CREATE DATABASE db1 CHARACTER SET latin1 COLLATE latin1_bin;
从命令行执行:
echo 'CREATE DATABASE db1 CHARACTER SET latin1 COLLATE latin1_bin;' | mysql -h server -u user -ppw
(此外,在您的示例中,-p 后面带有空格将无法正确解释密码,您需要将其附加到 -p)。
关于mysql - 使用正确的字符集/排序规则转储和加载 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58321520/
我是一名优秀的程序员,十分优秀!