MySQL 5.7にアップグレードする
Back
HOME
長年使っているデータベースの MySQL Community Server ですが、5.0 の時代の物です。データその物は Raid1 のハードディスクに収まっているのですが、実は、Windows7 からアップグレードした Wdindows10 が更新(1511から1607)不能に陥り、具体的解決が図れなかったためクリーンインストールしました。
それに伴い、環境も大きく変わっているので Windows10 に整合性のある
MySQL 5.7 にアップグレードする事にしました。
サーバのレイアウト
図中、
MySQL Installer 5.7 for Windows の
Download をクリックして、インストーラに依るインストールをすると非常に簡単ですが、新規の場合を除いてレイアウトを自由にしたい場合など何れコマンドレベルの調整が必要になると思い、手動でインストールする事にしました。
レイアウトは、既存のデータが存在するディレクトリーが
D:\Data\MySQL\data で、その中に
hamlog というアマチュア無線用のログデータベースが入っています。
今回は、
MySQL を
D:\MySQLに格納し、次回クリーンインストールした時にサービス登録だけでそのまま使用出来るようにしたいと思います。(その時上手く行くかは別ですが)
MySQL Server のダウンロードと配置
- インストーラの下の一覧から32ビット、又は64ビットのZIPファイルをダウンロードします。
今回は Windows (x86, 32-bit), ZIP Archive(mysql-5.7.17-win32.zip) を使用します。
Download
をクリックするとログイン又はサインアップを求められますが、取り敢えずダウンロードしたい時は
No thanks, just start my download をクリックします。
- 解凍したディレクトリーを MySQL にリネームして D:ドライブのルートに移動します。
ディレクトリー内には次のファイルやサブディレクトリーが入っています。
[bin],[docs],[include],[lib],[share]
COPYING, my-default.ini, README
- my-default.ini をコピーして my.ini とし、環境に合わせて内容を変更する。
Text Editor
# ------------------------------------------------------------------------
# CLIENT
# ------------------------------------------------------------------------
[client]
default-character-set=utf8
port=3306
[mysql]
default-character-set=utf8
# ------------------------------------------------------------------------
# SERVER
# ------------------------------------------------------------------------
[mysqld]
#
# Base
#
basedir=D:/MySQL
datadir=D:/Data/MySQL/data
explicit_defaults_for_timestamp=true
default-storage-engine=MYISAM
port=3306
server_id=1
character-set-server=utf8
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,ONLY_FULL_GROUP_BY,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
取り敢えずは、[myspld] のセクションだけで良いと思います。
ただ default-character の指定方法が変更されている(黄色とオレンジ色の違い)ので注意が必要です。
後のWindowsサービス起動でエラーが発生する場合、この my.ini 内での文法違いに起因する事が良く有ります。
これで、必要なファイルの配置が完了しました。
MySQL の初期化とサービスとしての起動
- MySQLシステムの初期化
初期化の処理に入る前に、引き継ぐデータの入っているディレクトリーをリネームして保全します。
例:\Data\MySQL\data ➡ \Data\MySQL\$data
管理者: コマンド プロンプト
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>D:
D:\>cd \MySQL
D:\MySQL>mysqld --defaults-file=D:\MySQL\my.ini --initialize
dataフォルダをリネームしていない場合のエラー
[ERROR] -initialize specified but the data directory has files in it. borting.
[ERROR] Aborting
例のように $data にリネームされていると、隣に新しく data が作成されています。
又、この –initialize によって、‘root’@’localhost’ アカウントとランダムなパスワードが作成されます。
パスワードはサーバのエラーログに出力されていますので、dataディレクトリー内の(コンピュータ名).errをテキストエディタで開き[temporary password]と言う文字列を検索してください。パスワードを今は割り当てたくない場合は、次のようにします。
管理者: コマンド プロンプト
D:\MySQL>mysqld --defaults-file=D:\MySQL\my.ini --initialize-insecure
- MySQLをWindowsのサービスとして登録・起動します。
管理者: コマンド プロンプト
D:\MySQL>mysqld --install MySQL --defaults-file=D:\MySQL\my.ini
Service successfully installed
D:\MySQL>net start MySQL
MySQL サービスを開始します。
MySQL サービスは正常に開始されました。
■MySQLユーザに対するパスワードの変更とアクセス出来る範囲の設定
- MySQLサーバに接続しパスワードを変更します。(旧データへのアクセス用と同じにする)
管理者: コマンド プロンプト
D:\MySQL>mysql -u root -p
Enter password: temporary password
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
- 外部接続できるIPアドレスの範囲を設定します(例:192.168.1.0 セグメント)
管理者: コマンド プロンプト
mysql> grant all privileges on *.* to root@"192.168.1.%" identified by 'PASSWORD' with grant option;
mysql> select user, host from mysql.user;
+-----------+-------------+
| user | host |
+-----------+-------------+
| root | 192.168.1.% |
| mysql.sys | localhost |
| root | localhost |
+-----------+-------------+
アプリケーションとの接続を復活させます。
- $data(旧フォルダ)から、data(新フォルダ)へ必要なデータベース(hamlogフォルダ)のみコピーします。
- ODBC_MySQL_Driver の設定をして、アプリを立ち上げます。
Back
HOME

この 作品 は
クリエイティブ・コモンズ 表示 - 非営利 - 改変禁止 4.0 国際 ライセンス
の下に提供されています。
English
Powered by