実践Linux
CentOS7        CentOS7 目次へ  TOP(HOME)へ

MariaDB (MySQL)・データベース          2016年6月



MariaDB 5.5 (MySQL5.5準拠)
●設定ファイル/etc/my.cnf
/etc/my.cnf.d以下の設定ファイルがインクルードされる形となっている。
/etc/my.cnfを編集し文字コードを設定する([mysqld]の最後)。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
character-set-server=utf8

●起動
mariadbを有効にしてから起動。(とあるホームページに、有効にしてからでないと起動しない?とある)
# systemctl enable mariadb.service
# systemctl start mariadb.service

●MariaDBの初期設定
初期セットアップコマンドがあり対話形式に進められる。
rootパスワードを設定するところのみ入力。その他についてはそのままEnterでOK。
# mysql_secure_installation
/usr/bin/mysql_secure_installation: 行 379: find_mysql_client: コマンドが見つかりません

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):[enter]
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n][enter]
New password:[パスワード入力]
Re-enter new password:[パスワード入力]
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n][enter]
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n][enter]
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n][enter]
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n][enter]
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!


●ユーザ作成
# mysql -u root -p  MariaDBにログイン

ユーザ一覧を表示するSQL文
> select user,host,user from mysql.user;
MariaDBのユーザはユーザ名@ホスト名がセットとなり一意に識別される。
MariaDB [(none)]> select user,host,user from mysql.user;
+------+-----------+------+
| user | host | user |
+------+-----------+------+
| root | 127.0.0.1 | root |
| root | ::1 | root |
| root | localhost | root |
+------+-----------+------+
3 rows in set (0.00 sec)

データベースmydbに対して全ての権限を持ったユーザmydb@localhost、mydb@"%"(パスワード「12345」)を登録
> grant all privileges on mydb.* to mydb@localhost identified by '12345';
> grant all privileges on mydb.* to mydb@"%" identified by '12345';
> flush privileges;
> exit

削除する場合は、以下のコマンド。権限を先に削除してからユーザを削除。
> revoke all on mydb.* from mydb@localhost;
> revoke all on mydb.* from mydb@"%";
> delete from mysql.user where user like 'mydb' and host like 'localhost';
> delete from mysql.user where user like 'mydb' and host like '%';
> flush privileges;

●データベースを作成
> create database mydb;

確認
> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| mydb |
+--------------------+

データベースの削除(中のテーブルもすべて削除されるので注意)
> drop database mydb;
> exit

●mariaDBサーバーの文字コードを確認(/etc/my.cnf、/etc/my.cnf.d以下の設定ファイル等で変更)
# mysql -u root -p  MariaDBにログイン
> show variables like 'char%';
> exit
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/


●firewalldの設定
trustedゾーンに対しては、必要ない。
外部からは、SSH接続。


●MariaDBのバックアップとリストア
データベース全体をdump.sqlにバックアップ
# mysqldump -u root -p -x --all-databases > dump.sql
password:[rootパスワード入力]

特定のデータベース(mydb)を指定してファイルにバックアップ
# mysqldump -u root -p mydb > mydb.dump.sql
password:[rootパスワード入力]

バックアップしたファイルを元にリストアをする
データベース全体をリストア
# mysql -u root -p < dump.sql
password:[rootパスワード入力]

特定のデータベース(mydb)を指定してデータベースをリストア
# mysql -u root -p mydb < mydb.dump.sql
password:[rootパスワード入力]


WindowsのExcel+ADOでデータベースにアクセスする

●MyODBCのインストール(Windoes)
データベースをExcelから操作するには、データベースと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;"
  ← Driver={MySQL ODBC 5.2 Unicode DRIVER}の部分はインストールしたODBCドライバに合わせる。

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;"  ← Driver={MySQL ODBC 5.2 Unicode DRIVER}の部分はインストールしたODBCドライバに合わせる。

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サーバー
ドメインの追加

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で解く