shell set -xe
时间: 2023-10-06 18:05:25 浏览: 268
`set -xe` 是一个常用的 Shell 命令,它的作用是打开 Shell 的调试模式。其中,`-x` 参数用于显示每个命令在执行之前先输出该命令,`-e` 参数用于在命令执行出错时立即退出脚本。
在脚本中使用 `set -xe` 可以帮助开发人员调试脚本,快速定位错误,并且能够在错误发生时及时终止脚本的执行。
相关问题
java.sql.SQLException: Incorrect string value: '\xE8\xB6\x85\xE9\x98\xB3...' for column
这个错误通常是由于MySQL字符集不支持存储特定字符而引起的。解决这个问题的方法是将MySQL字符集更改为支持存储这些字符的字符集,例如utf8mb4。具体步骤如下:
1. 确认MySQL版本是否支持utf8mb4字符集。可以通过以下命令检查:
```shell
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; ```
如果MySQL版本支持utf8mb4,则应该能够看到字符集和排序规则中包含utf8mb4。
2. 更改MySQL字符集为utf8mb4。可以通过以下步骤更改:
a. 编辑MySQL配置文件my.cnf或my.ini,将以下行添加到[mysqld]部分:
```shell
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
```
b. 重启MySQL服务以使更改生效。
3. 更改表的字符集和排序规则为utf8mb4。可以通过以下命令更改:
```shell
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
其中,table_name是要更改的表的名称。
4. 更改连接的字符集为utf8mb4。可以通过以下命令更改:
```shell
SET NAMES utf8mb4;
```
这将更改当前连接的字符集为utf8mb4。
请注意,如果您使用的是JDBC连接MySQL,则需要在JDBC URL中指定字符集,例如:
```shell
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf8mb4
```
ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xD5\xE6' for column 'EName' at row 1
这个错误提示是因为在插入数据时,数据中包含了MySQL不支持的字符集。可以通过修改MySQL的字符集来解决这个问题。具体步骤如下:
1. 查看MySQL当前的字符集设置:
```mysql
SHOW VARIABLES LIKE 'character%';
```
2. 修改MySQL的字符集为utf8mb4:
```mysql
SET character_set_server = utf8mb4;
```
3. 修改MySQL的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]下添加以下两行:
```mysql
[mysqld]
character-set-server=utf8mb4
```
4. 重启MySQL服务:
```shell
sudo service mysql restart
```
如果还是出现这个错误,可以尝试在插入数据时指定字符集为utf8mb4:
```mysql
INSERT INTO emp (empno,ename,job,hiredate,sal) VALUES (6060,'李华','经理','2001-09-16',2000.30) CHARACTER SET utf8mb4;
```
阅读全文