<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
環境:阿里雲伺服器(windows server)、mysql(8.0.11)
mysql> select @@version; +-----------+ | @@version | +-----------+ | 8.0.11 | +-----------+ 1 row in set
在windows伺服器中每天備份一次資料庫資料,防止出現各種意外。這裡就使用了mysql的 mysqldump 服務來匯出備份,備份初始指令碼如下
@echo off set 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.1 set port=3306 set user=root set pass=馬賽克 # 要備份的資料庫,這裡我專案的資料庫是 xxx_project set dbname=xxx_project # 備份檔案所在的位置,這裡我固定放在 C:MysqlDataBackups 下面,%dbname%-%now%.sql 是要生成的檔名稱 set backupfile=C:MysqlDataBackups%dbname%-%now%.sql # 執行備份命令 C:mysql-8.0.11-winx64binmysqldump 是我 mysql 安裝目錄下 mysqldump 所在的位置 "C:mysql-8.0.11-winx64binmysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile% echo delete files before 10 days forfiles /p E:MysqlDataBackups /s /m *.sql /d -60 /c "cmd /c del @file /f" @echo on
命令儲存為 bat 檔案,雙擊執行,能成功在 C:MysqlDataBackups 下面生成一個檔案
但是,當我們開啟檔案看的時候,發現裡面的備註,中文相關的都是亂碼(PS:Notepad++ 軟體開啟不會,可能是因為這個軟體比較智慧)
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-winx64sharecharsets | +--------------------------+----------------------------------------+ 8 rows in set
上面幾個變數說明:
如果上面編碼不對的話,想快速設定的話執行:set character_set_results = utf8;
上面這個只在當前終端有效,如果想永久儲存的話還是需要修改my.ini
的組態檔。
網上很多說法是 Windows PowerShell 輸出重定向 (“>”) 檔案編碼預設為UTF-16(LE)問題,解決辦法都是把命令拿去 cmd 中執行 ,但是我們這裡是寫成指令碼了,在cmd中執行是手動執行,雖然不是亂碼,但是我們放在指令碼中執行就出現亂碼了,這個辦法顯然對於我來說是不可行的。
mysqldump -uroot -p --add-drop-table xxx_project > D:xxx.sql
還有的文章說在匯出的命令上加上各種編碼引數,如:--default-character-set=utf8
mysqldump -uroot -proot --add-drop-table --default-character-set=utf8 xxx_project > D:xxx.sql
在網上發現另一個引數--hex-blob
, 這個引數主要是為了把BINARY
, VARBINARY
, BLOB
, BIT
等型別匯出為十六進位制,因為這些型別比較容易亂碼。再次嘗試:
mysqldump -uroot -proot --add-drop-table --default-character-set=utf8 --hex-blob xxx_project > D:xxx.sql
開啟檔案後依然亂碼
這段話翻譯過來就是:
說明:
在Windows上使用帶有輸出重定向的PowerShell生成的轉儲檔案將建立一個具有UTF-16編碼的檔案:
mysqldump [options] > dump.sql
但是,UTF-16不允許作為連線字元集(請參閱不允許的使用者端字元集),因此無法正確載入轉儲檔案。要解決這個問題,使用——result-file選項,它會建立ASCII格式的輸出:
mysqldump [options] --result-file=dump.sql
mysqldump -uroot -proot --add-drop-table --default-character-set=utf8 --hex-blob xxx_project --result-file=C:MysqlDataBackupsxxx.sql
@echo off set 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.1 set port=3306 set user=root set pass=馬賽克 # 要備份的資料庫,這裡我專案的資料庫是 xxx_project set dbname=xxx_project # 備份檔案所在的位置,這裡我固定放在 C:MysqlDataBackups 下面,%dbname%-%now%.sql 是要生成的檔名稱 set backupfile=C:MysqlDataBackups%dbname%-%now%.sql #用 bat 命令先建立檔案 backupfile,然後在用 mysqldump 往這個檔案中 寫入資料 echo=>%backupfile% "C:mysql-8.0.11-winx64binmysqldump" -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 days forfiles /p E:MysqlDataBackups /s /m *.sql /d -60 /c "cmd /c del @file /f" @echo on
最後看看效果
最後我們用 windows 的定時任務在每天凌晨三點的時候執行這個 bat 指令碼,就能做到一天備份一次資料庫拉。
到此這篇關於Windows 伺服器中使用 mysqldump 命令匯出資料,解決中文亂碼問題的文章就介紹到這了,更多相關Windows使用mysqldump匯出資料中文亂碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45