日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Windows 服務(wù)器中使用 mysqldump 命令導(dǎo)出數(shù)據(jù)中文亂碼問題的解決方案

瀏覽:320日期:2023-02-28 17:21:52
目錄
  • 起因
  • 解決辦法
    • 檢查編碼
    • 解決方案一(不適用)
    • 解決方案二(不可行)
    • 最終方案

起因

環(huán)境:阿里云服務(wù)器(windows server)、mysql(8.0.11)

mysql> select @@version;+-----------+| @@version |+-----------+| 8.0.11    |+-----------+1 row in set

在windows服務(wù)器中每天備份一次數(shù)據(jù)庫數(shù)據(jù),防止出現(xiàn)各種意外。這里就使用了mysql的 mysqldump 服務(wù)來導(dǎo)出備份,備份初始腳本如下

@echo offset hour=%time:~0,2%if "%time:~0,1%"==" " set hour=0%time:~1,1%set now=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2%echo %now%set host=127.0.0.1set port=3306set user=rootset pass=馬賽克# 要備份的數(shù)據(jù)庫,這里我項目的數(shù)據(jù)庫是 xxx_projectset dbname=xxx_project# 備份文件所在的位置,這里我固定放在 C:\MysqlDataBackups\ 下面,%dbname%-%now%.sql 是要生成的文件名稱set backupfile=C:\MysqlDataBackups\%dbname%-%now%.sql# 運行備份命令 C:\mysql-8.0.11-winx64\bin\mysqldump 是我 mysql 安裝目錄下 mysqldump 所在的位置"C:\mysql-8.0.11-winx64\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%echo delete files before 10 daysforfiles /p E:\MysqlDataBackups /s /m *.sql /d -60 /c "cmd /c del @file /f"@echo on

命令保存為 bat 文件,雙擊執(zhí)行,能成功在 C:\MysqlDataBackups\ 下面生成一個文件

但是,當(dāng)我們打開文件看的時候,發(fā)現(xiàn)里面的備注,中文相關(guān)的都是亂碼(PS:Notepad++ 軟件打開不會,可能是因為這個軟件比較智能)

解決辦法

檢查編碼

  • 這里為了防止我們數(shù)據(jù)庫編碼不對,我們先用命令查看數(shù)據(jù)庫編碼,這里可以看到編碼都是正常的, 主要字段是 character_set_results 的編碼
mysql> show variables like "%char%";+--------------------------+----------------------------------------+| Variable_name    | Value  |+--------------------------+----------------------------------------+| character_set_client     | utf8   || character_set_connection | utf8   || character_set_database   | utf8mb4|| character_set_filesystem | binary || character_set_results    | utf8   || character_set_server     | utf8mb4|| character_set_system     | utf8   || character_sets_dir       | C:\mysql-8.0.11-winx64\share\charsets\ |+--------------------------+----------------------------------------+8 rows in set

上面幾個變量說明:

  • character_set_client: 設(shè)置客戶端使用的字符集。
  • character_set_connection: 連接數(shù)據(jù)庫的字符集設(shè)置類型,如果程序沒有指明連接數(shù)據(jù)庫使用的字符集類型則按照服務(wù)器端默認(rèn)的字符集設(shè)置。
  • character_set_database: 設(shè)置數(shù)據(jù)庫服務(wù)器中某個庫的字符集。
  • character_set_filesystem: 設(shè)置文件系統(tǒng)的字符集。
  • character_set_results: 設(shè)置服務(wù)端返回給客戶端結(jié)果顯示使用的字符集。
  • character_set_server: 設(shè)置服務(wù)器安裝時指定的默認(rèn)字符集。
  • character_set_system: 設(shè)置數(shù)據(jù)庫系統(tǒng)使用的字符集。

如果上面編碼不對的話,想快速設(shè)置的話執(zhí)行:set character_set_results = utf8;

上面這個只在當(dāng)前終端有效,如果想永久保存的話還是需要修改my.ini的配置文件。

解決方案一(不適用)

網(wǎng)上很多說法是 Windows PowerShell 輸出重定向 (“>”) 文件編碼默認(rèn)為UTF-16(LE)問題,解決辦法都是把命令拿去 cmd 中執(zhí)行 ,但是我們這里是寫成腳本了,在cmd中執(zhí)行是手動執(zhí)行,雖然不是亂碼,但是我們放在腳本中執(zhí)行就出現(xiàn)亂碼了,這個辦法顯然對于我來說是不可行的。

mysqldump -uroot -p --add-drop-table xxx_project > D:\xxx.sql

解決方案二(不可行)

還有的文章說在導(dǎo)出的命令上加上各種編碼參數(shù),如:--default-character-set=utf8

mysqldump -uroot -proot --add-drop-table --default-character-set=utf8 xxx_project > D:\xxx.sql

在網(wǎng)上發(fā)現(xiàn)另一個參數(shù)--hex-blob, 這個參數(shù)主要是為了把BINARY, VARBINARY, BLOB, BIT等類型導(dǎo)出為十六進制,因為這些類型比較容易亂碼。再次嘗試:

mysqldump -uroot -proot --add-drop-table --default-character-set=utf8 --hex-blob xxx_project > D:\xxx.sql

打開文件后依然亂碼

最終方案

  • 最后在MySQL官網(wǎng)找到一段 mysqldump 相關(guān)的說明,在這段代碼中找到了解決方案(https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)

這段話翻譯過來就是:

說明:

在Windows上使用帶有輸出重定向的PowerShell生成的轉(zhuǎn)儲文件將創(chuàng)建一個具有UTF-16編碼的文件:

mysqldump [options] > dump.sql

但是,UTF-16不允許作為連接字符集(請參閱不允許的客戶端字符集),因此無法正確加載轉(zhuǎn)儲文件。要解決這個問題,使用——result-file選項,它會創(chuàng)建ASCII格式的輸出:

mysqldump [options] --result-file=dump.sql

  • 最后執(zhí)行的命令 --result-file 不會創(chuàng)建文件。所以我們要提前創(chuàng)建 xxx.sql 文件,每次執(zhí)行都會清空 xxx.sql 里面的文件內(nèi)容,然后重新寫入數(shù)據(jù)到文件中
mysqldump -uroot -proot --add-drop-table --default-character-set=utf8 --hex-blob xxx_project --result-file=C:\MysqlDataBackups\xxx.sql
  • 解決辦法找到了,但是光是這樣執(zhí)行,還達(dá)不到我們備份的目的,于是結(jié)合腳本,最終修改為:
@echo offset hour=%time:~0,2%if "%time:~0,1%"==" " set hour=0%time:~1,1%set now=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2%echo %now%set host=127.0.0.1set port=3306set user=rootset pass=馬賽克# 要備份的數(shù)據(jù)庫,這里我項目的數(shù)據(jù)庫是 xxx_projectset dbname=xxx_project# 備份文件所在的位置,這里我固定放在 C:\MysqlDataBackups\ 下面,%dbname%-%now%.sql 是要生成的文件名稱set backupfile=C:\MysqlDataBackups\%dbname%-%now%.sql#用 bat 命令先創(chuàng)建文件 backupfile,然后在用 mysqldump 往這個文件中 寫入數(shù)據(jù)echo=>%backupfile%"C:\mysql-8.0.11-winx64\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% --default-character-set=utf8 --hex-blob -c --add-drop-table %dbname% --result-file=%backupfile%echo delete files before 10 daysforfiles /p E:\MysqlDataBackups /s /m *.sql /d -60 /c "cmd /c del @file /f"@echo on

最后看看效果

最后我們用 windows 的定時任務(wù)在每天凌晨三點的時候執(zhí)行這個 bat 腳本,就能做到一天備份一次數(shù)據(jù)庫拉。

到此這篇關(guān)于Windows 服務(wù)器中使用 mysqldump 命令導(dǎo)出數(shù)據(jù),解決中文亂碼問題的文章就介紹到這了,更多相關(guān)Windows使用mysqldump導(dǎo)出數(shù)據(jù)中文亂碼內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: Windows IIS
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩在线网站| 日韩中文字幕一区二区高清99| 男女男精品网站| 国产婷婷精品| 日韩精品欧美成人高清一区二区| 日韩精品亚洲专区| 欧美一区91| 国际精品欧美精品| 91精品久久久久久久久久不卡| 午夜久久免费观看| 日韩午夜av| 综合激情五月婷婷| 国产综合欧美| 日韩在线一区二区| 97精品久久| 成人午夜网址| 久久精品91| 日韩中文字幕亚洲一区二区va在线| 日韩专区一卡二卡| 国产精品一站二站| 国产96在线亚洲| 欧美美女一区| 黄色av日韩| 制服诱惑一区二区| 亚洲成人一区在线观看| 久久精品不卡| 久久精品国产网站| 欧美中文日韩| 亚洲精品免费观看| 奇米狠狠一区二区三区| 国产亚洲高清在线观看| 激情国产在线| 天堂资源在线亚洲| 亚洲三级视频| 日韩欧美一区二区三区在线观看| 在线一区二区三区视频| 精品视频免费| 亚洲在线久久| 97精品视频在线看| 亚洲精品在线二区| 亚洲国产成人二区| av不卡在线| 欧美在线看片| 精品在线播放| 久久久国产精品网站| 欧美在线资源| 福利一区和二区| 亚洲精品激情| 欧美二区视频| 免费看一区二区三区| 亚洲一区二区免费在线观看| 亚洲精品永久免费视频| 青草综合视频| 日韩专区一卡二卡| 国内亚洲精品| 国产精品精品| 国产精品115| 在线国产一区| 极品av在线| 国产欧美丝祙| 免费在线观看成人| 日韩在线高清| 免费在线成人| 国产欧美午夜| 99国产精品久久久久久久成人热 | 快播电影网址老女人久久| 国产精品a级| 日韩制服丝袜av| 亚洲一级特黄| 亚洲手机视频| 欧美精品黄色| 久久久天天操| 韩国女主播一区二区三区| 日韩精品视频一区二区三区| 久久aⅴ国产紧身牛仔裤| 性感美女一区二区在线观看| 成人午夜在线| 国产欧美欧美| 91精品麻豆| 中文字幕日韩亚洲| 欧美一区二区三区高清视频| se01亚洲视频| 国产激情在线播放| 精品国产鲁一鲁****| 免费在线观看一区二区三区| 香蕉精品999视频一区二区| 亚洲伦乱视频| 久久久亚洲一区| 群体交乱之放荡娇妻一区二区| 国产网站在线| 精品五月天堂| 久久精品亚洲| 高清在线一区| 日韩不卡免费高清视频| 久久久久99| 免费毛片在线不卡| 91高清一区| 丝袜诱惑制服诱惑色一区在线观看| 国产午夜精品一区二区三区欧美| a日韩av网址| 另类中文字幕国产精品| 欧美亚洲国产激情| 亚洲综合福利| 免费av一区| 黄色亚洲大片免费在线观看| 久久国产三级| 久久一区国产| 亚洲三级视频| a国产在线视频| 亚洲欧美久久久| 麻豆一区在线| 国产精品亚洲综合久久| 尤物在线精品| 国产精品普通话对白| 久久久久久久久久久妇女| 今天的高清视频免费播放成人| 伊人久久成人| 亚洲人成网站在线在线观看| 国产日产一区| 日韩成人精品一区二区| 亚洲性视频h| 四虎在线精品| 欧美国产亚洲精品| 热三久草你在线| 男人的天堂久久精品| 国产日韩欧美一区二区三区在线观看 | 亚洲黄色中文字幕| 91av亚洲| 久久亚洲精品伦理| 国产欧美日韩亚洲一区二区三区| 色婷婷色综合| 国产午夜久久| 国产精品久久久久久久久久妞妞| 亚洲伦乱视频| 婷婷精品在线| 亚洲精品88| 亚洲精品日本| 国产高清不卡| 亚洲区欧美区| 日韩av免费大片| 免费不卡在线观看| 成人午夜网址| 久久国产精品久久w女人spa| 国产一区二区三区视频在线| 亚洲欧美日韩精品一区二区| 国产精品.xx视频.xxtv| 日韩av在线播放中文字幕| 91亚洲一区| 美女精品久久| 国产成人精品免费视| 日韩精品2区| 欧美日韩一二三四| 国产精品日本| 国产视频网站一区二区三区| 久久一区视频| 黄色成人91| 国产精品大片免费观看| 亚洲欧洲高清| 精品三级av| 日韩精品欧美| 亚洲天堂日韩在线| 日韩精品1区| 欧美日韩夜夜| 一区二区精品| 国产专区一区| 精品资源在线| 首页国产欧美久久| 色婷婷久久久| 成人一区而且| 国产精品亚洲欧美一级在线| 免费不卡在线观看| 国产精品av一区二区| 国产视频一区二| 亚洲综合婷婷| 99国产精品久久久久久久成人热 | 精品一区二区三区中文字幕视频 | 亚洲欧洲免费| 日韩伦理在线一区| 国产欧美激情| 亚洲美女久久| 老司机精品久久| 在线一区二区三区视频| 亚洲精品1区2区| 欧美一区二区性| 国产日韩免费| 99久久视频| 九九九精品视频| 久久亚洲欧洲| 在线看片一区| 欧美日韩午夜| 久久狠狠亚洲综合| 麻豆91小视频| 国产日韩欧美一区在线| 日韩免费小视频| 久久麻豆视频| 国产精品网在线观看| 国产精品亚洲一区二区在线观看| 少妇精品久久久一区二区三区| 久久最新视频| 欧美一级专区|