実践Linux
RockyLinux8 RockyLinux8 目次へ TOP(HOME)へ
MariaDBデータベース 2021年7月
MariaDB 10.3.28-1
●インストール
インストールの確認
# dnf list installed | grep mariadb
mariadb-connector-c.x86_64とmariadb-connector-c-config.noarchしかない。
本体のインストール
# dnf list | grep mariadb 確認
# dnf install -y mariadb-server mariadb mariadb-devel
●設定ファイル/etc/my.cnf他
/etc/my.cnf.d以下の設定ファイルがインクルードされる形となっている。
文字コードを設定
/etc/my.cnf.d/mariadb-server.cnfを編集
[mariadb]セクションに書きこむ。
character-set-server=utf8mb4
/etc/my.cnf.d/client.cnfを編集
[client-mariadb]セクションに書きこむ。
default-character-set=utf8mb4
※ mysqlとmariadbに対応する設定ができるようになっていて、[mariadb]や[client-mariadb]はmariadb専用セクションによるようだ。バージョンによっては、/etc/my.cnf.d/mariadb-server.cnfに集約されていることもあるようだ。
●起動
# systemctl start mariadb.service
# systemctl enable mariadb.service PC起動時に自動実行
●MariaDBの初期設定
初期セットアップコマンドがあり対話形式に進められる。
rootパスワードを設定するところのみ入力。その他についてはそのままEnterでOK。
# mysql_secure_installation
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!
以下略
●mariaDBサーバーの文字コードを確認(/etc/my.cnf、/etc/my.cnf.d以下の設定ファイル等で変更)
# mysql -u root -p MariaDBにログイン
> show variables like 'char%';
> exit
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8mb4
character_set_system utf8
character_sets_dir /usr/share/mariadb/charsets/
●firewalldの設定
trustedゾーンに対しては、必要ない。
外部からは、SSH接続。
●ユーザ作成
# 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のバックアップとリストア
データベース全体をdump.sqlにバックアップ
# mysqldump -u root -p -x --all-databases > dump.sql
password:[rootパスワード入力]
オプション-xは、データベース内のテーブルをすべてロック=バックアップ中のデータの操作を禁止。
特定のデータベース(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パスワード入力]
データベースのリストアでは、既に同じ名前のデータベースがある場合は、CREATE DATABASEはスキップされ、テーブルの削除→作成→データの充填となる。
WindowsのExcel+ADOでデータベースにアクセスする
●MyODBCのインストール(Windoes10)
データベースをExcelから操作するには、データベースとExcelなどのアプリケーションソフトウェアとを結ぶ「ODBCドライバ」が必要。
MySQL専用のODBCドライバをWindowsにインストールする。
https://dev.mysql.com/downloads/より、
Connector/ODBC → 「Microsoft Windows」を選択して、「Go to Download Page」
Windows (x86, 32-bit), MSI Installer 8.0.21 24.5Mをダウンロード(2020/7現在)
インストール
serverは必要なければ、外す。
インストール完了後はコントロールパネルの管理ツールのODBC data sources(32bit)を開く。
システムDSNタブの追加ボタンを押す。
MySQL ODBC 8.0 Unicode Driverを選択し、Data Source Nameを適当に。あとはそのままでかまわない。
●MyODBCのインストール(古い情報)
データベースを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」を起動する。
データの読み込み(取得型)
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
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)へ