実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ

MySQL・データベース(CentOS6.5の場合)   2014年9月





●旧サーバーのMySQLデータベースをバックアップしておく(DB全体のバックアップ)。
 # mysqldump -u root -p -x --all-databases --events > MySQL-dump.sql
 /rootに保存されるので、これをUSBメディアなどにコピーしておく。
 バックアップを復元するには、
 # mysql -u root -p < MySQL-dump.sql

mysqldumpでバックアップを取得すると「-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly」という警告が出る。これはMySQLのバージョン5.1.8からmysqlデータベースにeventテーブルが追加され、これがデフォルトではバックアップされない設定になっているからで、eventテーブルもバックアップしたい場合は上のように--eventsオプションを付ければよい。

●MySQLをアップデートしておく
 # yum list installed | grep mysql インストール確認
 # yum check-update | grep mysql アップデートできるものを確認
 # yum update mysql 等、アップデート実行

●必要なら、php-mysqlもインストール(phpを使用する場合)
 # yum install php-mysql

●データベースの初期化
 もし初めてMySQLをインストールしたなら、データベースを初期化します。
 (バージョンアップのための再インストール時には、絶対にしないこと。)
 # /usr/bin/mysql_install_db --user=mysql
 /var/lib/mysql以下にデータベースが生成される。(mysqlとtestディレクトリができた。初期でtestという空のデータベースができる。)

 MySQLを最初からやりなおす
 サービスを停止。
 /var/lib/mysql以下のファイルを全て消してしまって、再度初期化。
 これで/var/lib/mysql以下に新しいデータベースが生成し直されて、MySQLが起動できる。

●設定ファイル
/etc/my.cnf(バージョン5.1系)
 [mysqld]
 datadir=/var/lib/mysql
 socket=/var/lib/mysql/mysql.sock
 user=mysql

 symbolic-links=0

 default-character-set=utf8
 ← 追記(デフォルトのサーバ文字コードを指定する。ujis, sjis, utf8等が指定可能)
 skip-character-set-client-handshake
 ← 追記(サーバーの文字コード設定をクライアントでもそのまま使うようにする)

 [mysqld_safe]
 log-error=/var/log/mysqld.log
 pid-file=/var/run/mysqld/mysqld.pid

※注意
MySQL5.5系では、MySQLサーバは「default-character-set」というオプションが廃止されて、「character-set-server」になったようだ。
# default-character-set=utf8 ←ここはコメントアウト
character-set-server=utf8 ←ここを追加


●mysqlサービスを起動

●mysqlのバージョンを知る
 # mysqladmin version  (ここでは、5.1.69だった。)
 rootのパスワードを設定した後は、 # mysqladmin -u root -p version

PCシステムがクラッシュして再起動しても MySQL が起動しないとき
 Another MySQL daemon already running with the same unix socket.というエラー
 /var/lib/mysql/mysql.sock が残っているのが原因。これを削除(または退避)してやる。
 # mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
 # service mysqld start


●localhostのrootにパスワードを設定する
 # mysqladmin -u root password '**************'

 root@localhostユーザーからログインできる事を確認
 # mysql -u root -p  (パスワードを設定すると、# mysql -u rootではログインできなくなる)
 mysql> select user,host,password from mysql.user;  ←root@localhostのパスワード設定確認
 mysql> exit  ←MySQLからログアウト

●データベースの作成(バックアップを復元する場合は不要。)
 まず、root でログインし、データベースを作成しておく。
 # mysql -u root -p
 mysql> CREATE DATABASE mydb;
 mysql> SHOW DATABASES;  確認
 mysql> DROP DATABASE mydb; ← データベースmydbの削除(中のテーブルも全て削除されるので注意)
 mysql> exit

●ユーザーの作成 (バックアップを復元する前に行う。)
 # mysql -u root -p ← rootでログイン

 mydbデータベースに全アクセス権を持ったユーザーmydbの作成
 mysql> GRANT ALL PRIVILEGES ON mydb.* TO mydb@localhost IDENTIFIED BY '12345';
 mysql> GRANT ALL PRIVILEGES ON mydb.* TO mydb@"%" IDENTIFIED BY '12345';
 以前は"%"は文字通り「すべてのホスト」だったが、mydb@localhostはmydb@"%"に含まれなくなったようだ=localhost のアクセス許可も与えてやらなければならない。

 GRANTコマンドの構文
 mysql> grant 権限(複数指定可) on DB.テーブル to ユーザー@ホスト名 identified by 'パスワード' with grant option;

 ユーザーを追加したら最後に以下のように、ユーザーテーブルをリフレッシュします。
 mysql> FLUSH PRIVILEGES;

●バックアップを復元する(上でmydbユーザーを作成してから行う。)
 /rootにバックアップファイルMySQL-dump.sqlを置いておく。
 # mysql -u root -p < MySQL-dump.sql

●外部から接続する場合
 ファイアウォールで3306/TCPを開けておく(SSHサーバーを利用するときは、SSHサーバーに対して3306/TCPを開ける。ここでは、自分自身ということになるのであらためて設定する必要はなにもない)。


WindowsのExcel+ADOでMySQLにアクセスする

●MyODBCのインストール
MySQLのデータベースをExcelから操作するには、MySQLとExcelなどのアプリケーションソフトウェアとを結ぶ「ODBCドライバ」が必要。
MySQL専用のODBCドライバをWindowsにインストールする。
http://dev.mysql.com/downloads/より、
MySQL Connectors → Connector/ODBC →
「Microsoft Windows」を選択して、mysql-connector-odbc-5.2.6-win32.msiをダウンロード。
(64bit版だとインストールに失敗した。windows8.1)
実行するとインストールがはじまる。
Setup TypeにはTypical(標準)を選択。

インストール完了後はコントロールパネルの管理ツールのデータソース(ODBC)を起動します。
システムDSNタブの追加ボタンを押します。
MySQL ODBC 5.2 Unicode Driverを選択し、Data Source Nameを適当に。あとはそのままでかまわない。
(MySQL ODBC 5.2 ANSI Driver = shift-jisだと文字化けする)

Windows7
コントロールパネルからデータソースを起動してもMySQLのODBCは表示されない。
この場合は、コントロールパネルから起動せず、\Windows\SysWOW64\にある「odbcad32.exe」を起動する。


データの読み込み(取得型)
Sub データ取込()

Dim myCon As New ADODB.Connection
Dim myRS As New ADODB.Recordset
Dim myStr As String

Set myCon = New ADODB.Connection
myCon.Open "Driver={MySQL ODBC 5.2 Unicode DRIVER}; SERVER=192.168.7.1; PORT=3306; DATABASE=mydb; USER=mydb; PASSWORD=12345;"

myStr = "SQL文;"

Set myRS = New ADODB.Recordset

With myRS
  ActiveConnection = myCon
  Source = myStr
  Open
End With

Cells(10, 1).CopyFromRecordset myRS

myRS.Close
Set myRS = Nothing

myCon.Close
Set myCon = Nothing

End Sub

データの更新や挿入(実行型)
Sub データ登録()

Dim myCon As ADODB.Connection
Dim myStr As String

Set myCon = New ADODB.Connection
myCon.Open "Driver={MySQL ODBC 5.2 Unicode DRIVER}; SERVER=192.168.7.1; PORT=3306; DATABASE=mydb; USER=mydb; PASSWORD=12345;"

myStr = "SQL文"

myCon.Execute myStr

myCon.Close
Set myCon = Nothing

End Sub

サンプルのダウンロードはこちらから

TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く