Windows であっても、MySQL Community Edition(GPL) に対する操作はコマンドプロンプトから行います。Windows では、日本語は SHIFT_JIS( MySQL では cp932 を使用します )で表現されるので、一般的にサーバ側で UTF-8 で構築される MySQL では日本語のテーブル名を mysqldump.exe で認識してくれません。 (mysql.exe では cp932 で最初から調整されています) show variables like 'cha%' そこで、mysqldump で以下のようなコマンドラインを作成してデータのエクスポートを行います
mysqldump.exe --host=localhost --user=root --password=パスワード --add-drop-table --force --quote-names --default-character-set=cp932 lightbox 商品マスタ 得意先マスタ > export.sql
▼ 上記コマンドラインに改行を入れて解りやすく並べていますmysqldump.exe --host=localhost --user=root --password=パスワード --add-drop-table --force --quote-names --default-character-set=cp932 lightbox 商品マスタ 得意先マスタ > export.sqllightbox は、DB名で、商品マスタと得意先マスタはテーブル名です この結果取得される export.sql は以下のようになります
-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) -- -- Host: localhost Database: lightbox -- ------------------------------------------------------ -- Server version 5.7.17-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES cp932 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `商品マスタ` -- DROP TABLE IF EXISTS `商品マスタ`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `蝠・刀繝槭せ繧ソ` ( `蝠・刀繧ウ繝シ繝荏 varchar(4) NOT NULL, `蝠・刀蜷港 varchar(50) DEFAULT NULL, `蝨ィ蠎ォ隧穂セ。蜊倅セ。` int(11) DEFAULT NULL, `雋ゥ螢イ蜊倅セ。` int(11) DEFAULT NULL, `蝠・刀蛻・。杼 varchar(3) DEFAULT NULL, `蝠・刀蛹コ蛻・ varchar(1) DEFAULT NULL, `菴懈・譌・` datetime DEFAULT NULL, `譖エ譁ー譌・` datetime DEFAULT NULL, `蛯呵?チ mediumtext, `蜑企勁繝輔Λ繧ー` varchar(1) DEFAULT NULL, PRIMARY KEY (`蝠・刀繧ウ繝シ繝荏) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `商品マスタ` -- LOCK TABLES `商品マスタ` WRITE; /*!40000 ALTER TABLE `商品マスタ` DISABLE KEYS */; 省略(cp932 の insert) /*!40000 ALTER TABLE `商品マスタ` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `得意先マスタ` -- DROP TABLE IF EXISTS `得意先マスタ`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `蠕玲э蜈医・繧ケ繧ソ` ( `蠕玲э蜈医さ繝シ繝荏 varchar(4) NOT NULL, `蠕玲э蜈亥錐` varchar(50) DEFAULT NULL, `蠕玲э蜈亥玄蛻・ varchar(1) DEFAULT NULL, `諡・ス楢?・ varchar(4) DEFAULT NULL, `驛オ萓ソ逡ェ蜿キ` varchar(7) DEFAULT NULL, `菴乗園・疏 varchar(100) DEFAULT NULL, `菴乗園・蛋 varchar(100) DEFAULT NULL, `菴懈・譌・` datetime DEFAULT NULL, `譖エ譁ー譌・` datetime DEFAULT NULL, `邱譌・` int(11) DEFAULT NULL, `邱譌・蛹コ蛻・ int(11) DEFAULT NULL, `謾ッ謇墓律` int(11) DEFAULT NULL, `蛯呵?チ varchar(100) DEFAULT NULL, PRIMARY KEY (`蠕玲э蜈医さ繝シ繝荏) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `得意先マスタ` -- LOCK TABLES `得意先マスタ` WRITE; /*!40000 ALTER TABLE `得意先マスタ` DISABLE KEYS */; 省略(cp932 の insert) /*!40000 ALTER TABLE `得意先マスタ` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2017-05-19 17:34:14
このテキストファイルは、SHIFT_JIS として表示した場合、CREATE TABLE の部分が化けたように見えますが、その直前で /*!40101 SET character_set_client = utf8 */; として utf8 として判断されるようになっているので、MySQL サーバであれば Windows でもレンタルサーバでも正しく動作します(インポート時はレンタルサーバの phpmyadmin で SHIFT_JIS として読み込む) コマンドプロンプト環境の作成 仮に、c:\user\dos というフォルダにパスを通したとして、この中に以下のバッチファイルを保存します 1) MySQL のコマンドプロンプトからの処理用バッチファイル (MySQL のコマンドが保存されているパスは PC によって変わります) 2) 管理者権限のコマンドプロンプトを開くバッチファイル そして、普段 MySQL のサービスは停止しているとして、コマンドプロンプトからサービスを開始する為、ファイル名を指定して実行から、admin と入力して管理者権限でコマンドプロンプトを開きます。 1) sc start MySQL57 2) sc query MySQL57 ※ MySQL57 は、システムに登録されたサービス名 表示結果より、『STATE : 4 RUNNING』である事を確認したら、mysql_cmd と入力します(サービスが起動済みならば、ファイル名を指定して実行より、mysql_cmd と入力)。 そして、mysqldump を使用してバックアップを行います。 補足 MySQL で使用可能なキャラクタセット文字列は、SHOW CHARACTER SET で取得できます
|
【MySQLの最新記事】
- MySQL に PIPES_AS_CONCAT を設定して、CSV を出力する SQL
- MySQL : DB のデータを簡単に沢山作る方法は inner join
- MySQL で、Group by して合算された行内で最新データの明細を再び取り出す SQL
- MySQL のコマンドラインの操作
- MySQLの日本語オンラインマニュアル、5.6 とその中のいくつかの重要なリンク
- MySQL のコマンドプロンプトからの処理用バッチファイル
- MySQL で、主キーの作り変えのプロセス / serial では、自動的に インデックスが作成されます
- MySQL 5.6 (Generally Available (GA) Releases) インストール
- MySQL : 引数の無い LAST_INSERT_ID() と 引数のある LAST_INSERT_ID( n ) の使用方法
- MySQL における AUTO_INCREMENT 列の設定および詳細
- MySQL のプログラムからの経過時間の表現方法( CAST, STR_TO_DATE, GET_FORMAT, DATE_FORMAT, TIMEDIFF )
- MySQL で出退勤の列を datetime 型で持った場合、列を使用して DATEDIFF と TIMEDIFF で直接計算
- MySQL を UTF-8 環境で作成して、mysqldump.exe でバックアップするバッチファイルのサンプル
- MySQL 5.6 : テストデータ自動作成スクリプト
- PHP + MySQL : Windows の COM を使った ODBC 経由での接続とデータの取得(SELECT)
- VBScript + MySQL : ADO( ODBC ) による接続とデータの取得(SELECT)
- PHP + MySQL : Windows における ODBC 経由での接続とデータの取得(SELECT)
- PHP + MySQL : PDO_MySQL での接続とデータの取得(SELECT)
- PHP + MySQL : MySQL 改良版拡張モジュール mysqli クラスでの接続とデータの取得(SELECT)
- PHP + MySQL : PHP 5.5.0 で非推奨の MySQL 関数での接続とデータの取得(SELECT)