昨年からMySQLチームがオフィシャルレポジトリーをDockerに公開し、
最近少しずつ利用している方も増えてきて、
開発環境などでは簡単にDBが準備出来て工数削減も出来、
大活躍出来る仕組みなので簡単にレビューしておきます。

[Dockerレポジトリ]
https://hub.docker.com/_/mysql/ (Docker Team)
https://hub.docker.com/r/mysql/mysql-server/ (MySQL team at Oracle)

Tagに関しては、此方を確認下さい。(指定しない場合は、最新のイメージがダウンロードされます)
https://hub.docker.com/r/mysql/mysql-server/tags/

レポジトリーにはDockerのオフィシャルレポジトリーとMySQLチームが公開しているオフィシャルレポジトリーがあります。
イメージをPULLすると以下のような感じになります。

既に、docker pull mysql:5.7.10コマンドでDockerオフィシャルレポジトリからイメージをダウンロード済みの状態です。
追加で、MySQL@OracleのオフィシャルレポジトリーからDockerのイメージをダウンロードしてみます。
サイズだけ見ると、MySQL@Oracleのオフィシャルレポジトリーからダウンロードしたイメージの方がサイズは小さいです。


[root@DockerHost docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql               5.7.10              ea0aca21950d        3 weeks ago         360.3 MB
[root@DockerHost docker]# docker pull mysql/mysql-server:5.7.10
5.7.10: Pulling from mysql/mysql-server
f359075ce4d8: Pull complete 
df9c05f5df07: Pull complete 
bea04efc3319: Pull complete 
14204cc431b4: Pull complete 
249d5b7b31c1: Pull complete 
70a368114c59: Pull complete 
c5b90de0636a: Pull complete 
59e355dc43f6: Pull complete 
f03e996fb5a3: Pull complete 
69497ffa3023: Pull complete 
e472f1765697: Pull complete 
Digest: sha256:c9266386460cfb302d21615bbe8f6a16166b2376eb371095df7cc9a1c9cf6da1
Status: Downloaded newer image for mysql/mysql-server:5.7.10
[root@DockerHost docker]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql                5.7.10              ea0aca21950d        3 weeks ago         360.3 MB
mysql/mysql-server   5.7.10              e472f1765697        4 weeks ago         294.6 MB
[root@DockerHost docker]# 

Dockerオフィシャルイメージを利用してMySQLを構築してみます。
インスタンス作成時に、データディレクトリーを指定、オプションファイルを指定、インスタンス作成と同時に
データベース作成する為に以下のスクリプトを配置してあります。ソースを確認すると*.sqlか*.shを配置しておくと、
DB作成時に読み込んでSQL文を実行してくれます。(初期共通アカウントやDB作成に使えます)

run


[root@DockerHost docker]# ls -l /docker/init_script/sakila-db/init-docker-sakila.sql 
-rw-r--r-- 1 root root 3421501 Jan  8 01:01 /docker/init_script/sakila-db/init-docker-sakila.sql
[root@DockerHost docker]# 


[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@DockerHost docker]# docker run --name my_docker01 -v /docker/docker01:/var/lib/mysql -v /docker/option1:/etc/mysql/conf.d -v /docker/init_script/sakila-db:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=mysql -d mysql:5.7.10
5152a22b2aa0c724bd260552205ebf566a21b9d854a54921f02a96e40817a930
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5152a22b2aa0        mysql:5.7.10        "/entrypoint.sh mysql"   11 seconds ago      Up 9 seconds        3306/tcp            my_docker01
[root@DockerHost docker]# 

Docker Inspectコマンドでパスのマッピングを確認


[root@DockerHost docker]# docker inspect my_docker01 | egrep 'Source|Destination'
            "Source": "/docker/docker01",
            "Destination": "/var/lib/mysql",
            "Source": "/docker/option1",
            "Destination": "/etc/mysql/conf.d",
            "Source": "/docker/init_script/sakila-db",
            "Destination": "/docker-entrypoint-initdb.d",
[root@DockerHost docker]# 

作成したインスタンスに接続して、初期設定状態を確認してみます。
確認: インスタンス接続、オプションファイルの読み込み、初期DBの作成状態。

[root@DockerHost docker]# docker exec -it my_docker01 mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

root@localhost [(none)]> show tables from sakila;
+----------------------------+
| Tables_in_sakila           |
+----------------------------+
| actor                      |
| actor_info                 |
| address                    |
| category                   |
| city                       |
| country                    |
| customer                   |
| customer_list              |
| film                       |
| film_actor                 |
| film_category              |
| film_list                  |
| film_text                  |
| inventory                  |
| language                   |
| nicer_but_slower_film_list |
| payment                    |
| rental                     |
| sales_by_film_category     |
| sales_by_store             |
| staff                      |
| staff_list                 |
| store                      |
+----------------------------+
23 rows in set (0.07 sec)

root@localhost [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.04 sec)

root@localhost [(none)]> 

次に、MySQL@Oracleチームがオフィシャルに提供しているオフィシャルイメージを利用してインスタンスを作成してみます。
※こちらのイメージを利用する場合は、オプションファイルの指定方法が少し異なります。(/etc/my.cnf)


[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
5152a22b2aa0        mysql:5.7.10        "/entrypoint.sh mysql"   53 minutes ago      Up 53 minutes       3306/tcp            my_docker01
[root@DockerHost docker]# docker run --name my_docker02 -v /docker/docker02:/var/lib/mysql -v /docker/init_script/sakila-db:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=mysql -d mysql/mysql-server:5.7.10
f59d1fd222d7b15ff0f0dfa3879254730734e17451fde56aeb402279f355941e
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   2 seconds ago       Up 1 seconds        3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   53 minutes ago      Up 53 minutes       3306/tcp            my_docker01
[root@DockerHost docker]# 

作成したインスタンスとDBの確認。(こちらは、OptionファイルはしていないのでDefaultです)


[root@DockerHost docker]# docker exec -it my_docker02 mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
+--------------------+
5 rows in set (0.02 sec)

mysql> show tables from sakila;
+----------------------------+
| Tables_in_sakila           |
+----------------------------+
| actor                      |
| actor_info                 |
| address                    |
| category                   |
| city                       |
| country                    |
| customer                   |
| customer_list              |
| film                       |
| film_actor                 |
| film_category              |
| film_list                  |
| film_text                  |
| inventory                  |
| language                   |
| nicer_but_slower_film_list |
| payment                    |
| rental                     |
| sales_by_film_category     |
| sales_by_store             |
| staff                      |
| staff_list                 |
| store                      |
+----------------------------+
23 rows in set (0.00 sec)

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

mysql> 

イメージは停止しても、削除(rm)しなければ継続利用出来るので以下のようにサービスを停止して再開しても、
作成したデータなどは無くならず利用する事が可能です。


[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   10 minutes ago      Up 10 minutes       3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Up About an hour    3306/tcp            my_docker01
[root@DockerHost docker]# docker stop f59d1fd222d7
f59d1fd222d7
[root@DockerHost docker]# docker stop 5152a22b2aa0
5152a22b2aa0
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                      PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   11 minutes ago      Exited (0) 13 seconds ago                       my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Exited (0) 3 seconds ago                        my_docker01
[root@DockerHost docker]# docker start f59d1fd222d7
f59d1fd222d7
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                      PORTS               NAMES
f59d1fd222d7        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   11 minutes ago      Up 2 seconds                3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Exited (0) 20 seconds ago                       my_docker01
[root@DockerHost docker]# docker exec -it my_docker02 mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> 

補足: MySql@oracleチームのオフィシャルイメージの場合にオプションファイルを指定する場合は、以下のように実行します。


[root@DockerHost docker]# docker run --name my_docker02 -v /docker/docker02:/var/lib/mysql -v /docker/option2/my.cnf:/etc/my.cnf -v /docker/init_script/sakila-db:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=mysql -d mysql/mysql-server:5.7.10
4fde03dc4cb5966bbfee79de92c2351f2b04812df77bf763b0e14755c3d51261
[root@DockerHost docker]# docker ps -a 
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                      PORTS               NAMES
4fde03dc4cb5        mysql/mysql-server:5.7.10   "/entrypoint.sh mysql"   22 seconds ago      Up 21 seconds               3306/tcp            my_docker02
5152a22b2aa0        mysql:5.7.10                "/entrypoint.sh mysql"   About an hour ago   Exited (0) 24 minutes ago                       my_docker01
[root@DockerHost docker]# 

[root@DockerHost docker]# docker inspect my_docker02 | egrep 'Source|Destination'
            "Source": "/docker/docker02",
            "Destination": "/var/lib/mysql",
            "Source": "/docker/option2/my.cnf",
            "Destination": "/etc/my.cnf",
            "Source": "/docker/init_script/sakila-db",
            "Destination": "/docker-entrypoint-initdb.d",
[root@DockerHost docker]# 

参考:
https://hub.docker.com/r/mysql/mysql-server/
http://datacharmer.blogspot.jp/2015/10/mysql-docker-operations-part-1-getting.html


Pythonによる、乱数を用いたデータInsert処理確認

事前データ状況確認

mysql> select * from language;
+-------------+----------+---------------------+
| language_id | name     | last_update         |
+-------------+----------+---------------------+
|           1 | English  | 2006-02-15 05:02:19 |
|           2 | Italian  | 2006-02-15 05:02:19 |
|           3 | Japanese | 2014-07-15 16:14:50 |
|           4 | Mandarin | 2006-02-15 05:02:19 |
|           5 | French   | 2006-02-15 05:02:19 |
|           6 | German   | 2006-02-15 05:02:19 |
|           7 | Chinese  | 2014-08-04 11:36:23 |
|           8 | Korean   | 2014-08-04 14:20:16 |
|           9 | Ainu     | 2014-08-04 14:44:03 |
|          10 | Irish    | 2014-08-04 14:44:03 |
+-------------+----------+---------------------+
10 rows in set (0.00 sec)

mysql> 

乱数を用いてデータInsertする為に処理を入れる。
但し、データベースのテーブル内容とは関係無い文字列を利用しています。

$ vim mysql_loop.py
$ cat mysql_loop.py
# coding: utf-8

try:
 # import

 import mysql.connector
 import string
 from random import randrange

 # 接続
 connect = mysql.connector.connect(user='root', password='password', host='localhost', database='test', charset='utf8')

 # カーソル
 cursor = connect.cursor()
 # SQL 発行
 # cursor.execute('select language_id,name from language',())

  # Random Charactor Create
 LENGTH = 20
 alphabets = string.digits + string.letters

 def randstr(n):
     return ''.join(alphabets[randrange(len(alphabets))] for i in xrange(n))
 if __name__ == '__main__':

   randstr_ins =  randstr(LENGTH)
   insert_stmt = 'insert into language(name) values("%s")' % randstr_ins
   cursor.execute(insert_stmt)

 # connect.commit()

 # フェッチ
 #
 # rows = cursor.fetchall()
 # print(rows)
   connect.commit()
   cursor.close()
 # 切断
 connect.close()

except Exception as myout:

 print(myout)

$
$ python mysql_loop.py

20文字で作成された乱数文字が入力された事を確認。

mysql> select * from language;
+-------------+----------------------+---------------------+
| language_id | name                 | last_update         |
+-------------+----------------------+---------------------+
|           1 | English              | 2006-02-15 05:02:19 |
|           2 | Italian              | 2006-02-15 05:02:19 |
|           3 | Japanese             | 2014-07-15 16:14:50 |
|           4 | Mandarin             | 2006-02-15 05:02:19 |
|           5 | French               | 2006-02-15 05:02:19 |
|           6 | German               | 2006-02-15 05:02:19 |
|           7 | Chinese              | 2014-08-04 11:36:23 |
|           8 | Korean               | 2014-08-04 14:20:16 |
|           9 | Ainu                 | 2014-08-04 14:44:03 |
|          10 | Irish                | 2014-08-04 14:44:03 |
|          11 | bihnbj3Mr4xcRxtaJaDE | 2014-08-04 16:04:56 |
+-------------+----------------------+---------------------+
11 rows in set (0.00 sec)

mysql>

上記スクリプトの確認出来たので、データ作成用のLoopが動くか確認。
1) 事前データ確認

mysql> select * from language;
+-------------+----------------------+---------------------+
| language_id | name                 | last_update         |
+-------------+----------------------+---------------------+
|           1 | English              | 2006-02-15 05:02:19 |
|           2 | Italian              | 2006-02-15 05:02:19 |
|           3 | Japanese             | 2014-07-15 16:14:50 |
|           4 | Mandarin             | 2006-02-15 05:02:19 |
|           5 | French               | 2006-02-15 05:02:19 |
|           6 | German               | 2006-02-15 05:02:19 |
|           7 | Chinese              | 2014-08-04 11:36:23 |
|           8 | Korean               | 2014-08-04 14:20:16 |
|           9 | Ainu                 | 2014-08-04 14:44:03 |
|          10 | Irish                | 2014-08-04 14:44:03 |
|          11 | bihnbj3Mr4xcRxtaJaDE | 2014-08-04 16:04:56 |
|          12 | xadk5JJmgPLkw7kFQ2LT | 2014-08-04 16:10:46 |
+-------------+----------------------+---------------------+
12 rows in set (0.00 sec)

mysql>

2) PRINTコマンドで確認

$ vim mysql_loop.py
$ python mysql_loop.py
insert into language(name) values("t6hiIohEArPADMXA7P35")
insert into language(name) values("51akdy18UtKDJVeNXjdK")
insert into language(name) values("BiQnfmMX4hlBynVJpXKC")
insert into language(name) values("6NdLDWOS72vKy4hfYtgZ")
insert into language(name) values("j2WbDYCt63PO5XQtK5Qr")
insert into language(name) values("QR05Zd7Y8Y9EnKXFqjMr")
insert into language(name) values("JMIF6GKBF7yyHnVUxFc0")
insert into language(name) values("ScgelcWkaQVrLKkPkjtV")
insert into language(name) values("1bWLI0OMRv6CNEhe8Iax")
insert into language(name) values("ZTSCsBNyWqxN32ErJnxE")
Finish Creating Data

$ vim mysql_loop.py

3) PRINTをコメントして実際のSQLコマンド実行してみる。

$ cat mysql_loop.py
# coding: utf-8

try:
 # import

 import mysql.connector
 import string
 from random import randrange

 # 接続
 connect = mysql.connector.connect(user='root', password='password', host='localhost', database='test', charset='utf8')

 # カーソル
 cursor = connect.cursor()
 # SQL 発行
 # cursor.execute('select language_id,name from language',())

 for i in  range(0, 10):

  # Random Charactor Create
  LENGTH = 20
  alphabets = string.digits + string.letters

  def randstr(n):
      return ''.join(alphabets[randrange(len(alphabets))] for i in xrange(n))
  if __name__ == '__main__':

   randstr_ins =  randstr(LENGTH)
   insert_stmt = 'insert into language(name) values("%s")' % randstr_ins
   cursor.execute(insert_stmt)
   #print insert_stmt
   #connect.commit()

 else:
    print('Finish Creating Data')

 # フェッチ
 #
 # rows = cursor.fetchall()
 # print(rows)
 connect.commit()
 cursor.close()
 # 切断
 connect.close()

except Exception as myout:

 print(myout)

$
$ python mysql_loop.py
Finish Creating Data
$

4) Loopされた後にテーブルを確認してみて、テスト用のデータ作成確認

mysql> select * from language;
+-------------+----------------------+---------------------+
| language_id | name                 | last_update         |
+-------------+----------------------+---------------------+
|           1 | English              | 2006-02-15 05:02:19 |
|           2 | Italian              | 2006-02-15 05:02:19 |
|           3 | Japanese             | 2014-07-15 16:14:50 |
|           4 | Mandarin             | 2006-02-15 05:02:19 |
|           5 | French               | 2006-02-15 05:02:19 |
|           6 | German               | 2006-02-15 05:02:19 |
|           7 | Chinese              | 2014-08-04 11:36:23 |
|           8 | Korean               | 2014-08-04 14:20:16 |
|           9 | Ainu                 | 2014-08-04 14:44:03 |
|          10 | Irish                | 2014-08-04 14:44:03 |
|          11 | bihnbj3Mr4xcRxtaJaDE | 2014-08-04 16:04:56 |
|          12 | xadk5JJmgPLkw7kFQ2LT | 2014-08-04 16:10:46 |
|          13 | 8yM0B3BgYbOt2KQW141i | 2014-08-04 16:51:28 |
|          14 | PKvnobsxLU3dTZZBItn7 | 2014-08-04 16:51:28 |
|          15 | aXu9jdW8OWL7ajtkYf4R | 2014-08-04 16:51:28 |
|          16 | 7BGNAekeHNeCSCM8kMxS | 2014-08-04 16:51:28 |
|          17 | pKwi8LY8HyAKKmEs7Th0 | 2014-08-04 16:51:28 |
|          18 | p5MADXZyinC9Yetr51nj | 2014-08-04 16:51:28 |
|          19 | P2hBaAK9HbCiVW8gBSPj | 2014-08-04 16:51:28 |
|          20 | Igddxz3UzmwEzYacX6iO | 2014-08-04 16:51:28 |
|          21 | FslzpwD8WKBbBhOkvTKz | 2014-08-04 16:51:28 |
|          22 | yE8AheE4dglD3lcojEfc | 2014-08-04 16:51:28 |
+-------------+----------------------+---------------------+
22 rows in set (0.00 sec)

mysql>

こんな感じでrandomで変数を取得する事も出来る。

$ cat randum_import.py
# coding: utf-8

import string
from random import randrange

import random


LENGTH = 20
alphabets = string.digits + string.letters

def randstr(n):
    return ''.join(alphabets[randrange(len(alphabets))] for i in xrange(n))
if __name__ == '__main__':


 print randstr(LENGTH)
 print random.random()


 mix_string = randstr(LENGTH) +  str(random.random())
 print mix_string

$ python randum_import.py
2GaN2hELQd7sDe9Hxdt6
0.28266427386
Zxp7xV3cMolzZFaXtB9p0.235414511771

$

MYSQLは他のDBと同じようにI/O分散する事でパフォーマンスを大きく向上させることが出来ます。
基本的には、物理的に別のディスク(ディスクヘッドが別)を準備する事でI/O待ちを減らすことが
可能です。
ファイルをそれぞれの場所に分割する事で、I/O分散だけではなくオリジナルディスク領域の
ディスク容量を空ける事も可能です。

以下のファイルはアクセス方法が違う事が多いので分けましょう
Log File     (Sequentialアクセス)
Database File  (Randumアクセス)
Temporary Files (Randum and Sequentialアクセスなど)

=====================================
Windowsでのデータファイルパスの変更方法
=====================================
1. サーバーをSTOPさせる
2. データフォルダー移動、C:\Program Files\MYSQL\MYSQL Server 5.xx\data\移動用DBフォルダー
をG:\MYSQL\DATA\移動先DBフォルダー (名前は変更しておいた方が分かり易い)などへ移動
3. C:\Program Files\MYSQL\MYSQL Server 5.xx\data\ に 「移動用DBフォルダー.sym」という
   ファイル名でテキストファイルを作成する
4. 「移動用DBフォルダー.sym」を編集し、「G:\MYSQL\DATA\移動先DBフォルダー」を記入
5. サーバーをSTARTさせる。

=====================================
Linuxでのデータファイルパスの変更方法
=====================================
1. サーバーをSTOPさせる
2. データフォルダー移動、/usr/local/mysql/data/移動用DBフォルダー
を/home/mysql/data/移動先DBフォルダー (名前は変更しておいた方が分かり易い)などへ移動
3. /usr/local/mysql/data/ に 「移動用DBフォルダー」用のシンボリックリンク作成
   [root@colinux data]#ln -s /home/mysql/data/移動先DBフォルダー 移動用DBフォルダー
4. サーバーをSTARTさせる。

——————- 【Linuxでの例】——————-

1. STOP MYSQL Server
2. データベースフォルダーの移動
move_1

move_2

3. シンボリックリンクの作成
move_3

move_4

4. START MYSQL Server (起動後はデータアクセス確認)
move_5

参考URL

6.6.1.3. 上のデータベースに対するシンボリックリンクの使用

6.6.1. シンボリックリンクの使用

6.6.1.1. Unix 上のデータベースに対するシンボリックリンクの使用


6.6.1.2. Unix 上のテーブルに対するシンボリックリンクの使用