mysql執行sql指令碼報錯ERROR 1366 (HY000) 解決
mysql執行sql指令碼是有兩種方式:
方式1:
在控制檯下,進入mysql的bin目錄,
mysql -u user -p"password" -P 3308 -D testdb < d:\test\test.sql
這裡的test.sql是待執行的sql指令碼,記得要寫絕對路徑。
方式2:
進入mysql的執行命令列下,用source命令執行:
Mysql>source d:\test\test.sql
或
Mysql>\. d:\test\test.sql
問題:
用方式1執行sql指令碼時,報錯如下:
網上查了這個錯誤,是字符集方面的。但是,當我嘗試把test.sql裡的sql語句分開一條一條在Navicat客戶端上執行,或者用以下方式執行:
mysql -u user -p"password" -P 3308 -D testdb -e "update ** set col1="中文";"
發現全部都執行成功了。
這說明sql指令碼本身自己是沒有問題的。所以問題可能出在sql指令碼的編碼格式上。
經過檢查發現,因為我的sql指令碼是用txt編寫,儲存時預設編碼格式是ansi。於是重新儲存,如下:
選擇編碼格式為utf8。再次執行,成功。
注:如果待執行的sql指令碼中含有中文字元,需要注意指令碼的編碼格式。
方式1:
在控制檯下,進入mysql的bin目錄,
mysql -u user -p"password" -P 3308 -D testdb < d:\test\test.sql
這裡的test.sql是待執行的sql指令碼,記得要寫絕對路徑。
方式2:
進入mysql的執行命令列下,用source命令執行:
Mysql>source d:\test\test.sql
或
Mysql>\. d:\test\test.sql
問題:
用方式1執行sql指令碼時,報錯如下:
網上查了這個錯誤,是字符集方面的。但是,當我嘗試把test.sql裡的sql語句分開一條一條在Navicat客戶端上執行,或者用以下方式執行:
mysql -u user -p"password" -P 3308 -D testdb -e "update ** set col1="中文";"
發現全部都執行成功了。
這說明sql指令碼本身自己是沒有問題的。所以問題可能出在sql指令碼的編碼格式上。
經過檢查發現,因為我的sql指令碼是用txt編寫,儲存時預設編碼格式是ansi。於是重新儲存,如下:
選擇編碼格式為utf8。再次執行,成功。
注:如果待執行的sql指令碼中含有中文字元,需要注意指令碼的編碼格式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28497416/viewspace-2128698/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 亂碼實戰解決ERROR 1366 (HY000): Incorrect string value: 'MySqlError
- MySQL ERROR 1366(HY000):Incorrect string value:''for column''at row 1解決方案MySqlError
- sh指令碼執行報錯指令碼
- MySQL插入資料1366錯誤解決方案MySql
- 安裝RAC 執行root.sh指令碼報錯,解決辦法指令碼
- mysql 報錯:ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD‘ for column ‘name‘ at row 1MySqlError
- MySQL 5.5 執行指令碼中的SQLMySql指令碼
- 執行指令碼diagcollection.pl報錯指令碼GC
- crontab不執行mysql的指令碼問題的解決!MySql指令碼
- MySQL執行外部sql指令碼檔案的命令MySql指令碼
- mybatis執行sql指令碼MyBatisSQL指令碼
- SQL SERVER執行指令碼SQLServer指令碼
- Centos7-mysql執行報錯ERROR1820(HY000):YoumustresetyourpasswordusingALTERUSERstatementbeforeexecutingthisstatement.CentOSMySqlError
- MySQL報錯ERROR 2013 (HY000): Lost connection to MySQL server during queryMySqlErrorServer
- MySQL5.6:mysql_secure_installation 報錯ERROR 2002 (HY000)MySqlError
- hp-ux環境sqlplus中使用@執行sql指令碼報錯UXSQL指令碼
- 【MySQL】ERROR 1290 (HY000): --secure-file-priv--匯出報錯MySqlError
- mysql 5.6.25報錯ERROR 1372 (HY000): Password hash 的一點思考MySqlError
- MySQL 報錯 ERROR 1290 (HY000): running with the --secure-file-privMySqlError
- IDE 執行指令碼後報一長串 “CreateFile () Error: 2”IDE指令碼Error
- MySQL報錯'ERROR 2002 (HY000): Can't connect to local MySQL server through'MySqlErrorServer
- mysql執行報錯mysql.sockMySql
- 執行 shell 指令碼 \r 問題解決指令碼
- npm 執行時報錯“因為在此係統上禁止執行指令碼”解決辦法NPM指令碼
- MySQL建立使用者報錯 ERROR 1396 (HY000): Operation CREATE USER failed for 'afei'@'%'MySqlErrorAI
- 執行Docker命令報錯解決辦法Docker
- mac 下PyCharm執行報錯問題解決MacPyCharm
- 執行SQL發生錯誤!錯誤:disk I/O errorSQLError
- MySQL 5.7 建立使用者報錯 ERROR 1805 (HY000): Column count of mysql.user is wrongMySqlError
- Mysql連線錯誤ERROR 2003 (HY000)MySqlError
- mysql登入報錯提示:ERROR 1045 (28000)的解決方法MySqlError
- ERROR 1290 (HY000) 解決辦法Error
- MYSQL SOURCE報錯 ERROR: ASCIIMySqlErrorASCII
- Percona MySQL 5.6 語句加鎖報錯"ERROR 1665 (HY000): Cannot execute statement"MySqlError
- shell 指令碼報錯^M: syntax error near unexpected token指令碼Error
- 解決 React-Native mac10.14.4 執行報錯 error Failed to build iOS projectReactMacErrorAIUIiOSProject
- MySQL error 錯 誤 碼MySqlError
- CMD 執行大檔案SQL指令碼SQL指令碼