Symfoware

Symfowareについての考察blog

Debian 8にMariaDB 10.1をインストールし、外部接続を許可する

Debian 8にMariaDB 10.1をインストールした時のメモです。


インストール



こちらの手順に従いました。
Downloads


必要なソフトをインストール。
aptのキーを追加し、MariaDBのリポジトリを追加します。


# apt-get install software-properties-common
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
# add-apt-repository 'deb [arch=amd64,i386] http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.1/debian jessie main'




ソースリストを更新。
MariaDBのインストールを実行します。


# apt-get update
# apt-get install mariadb-server




途中、パスワードの入力を求められるので、適当な値を入力します。

662_01.png

662_02.png


mysqlコマンドで接続してみます。


# mysql -uroot -p[設定したパスワード]
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.11-MariaDB-1~jessie-log mariadb.org binary distribution

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>




10.1.11がインストール出来ました。




文字コードの変更



文字コードを確認してみます。


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




databaseとserverの文字コードがlatin1です。
my.cnfを編集して、utf-8に変更しておきます。


# vi /etc/mysql/my.cnf




mysqldの項目に「character-set-server=utf8」の記載を追記。


[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket         = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir         = /tmp
lc_messages_dir = /usr/share/mysql
lc_messages     = en_US
skip-external-locking
character-set-server=utf8




編集がおわったら、mysqlを再起動。


# service mysql restart




ちゃんと文字コードが変更されました。


MariaDB [(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.00 sec)







外部接続許可



このサーバーに外部から接続できるよう構成します。
my.cnfを編集。


# vi /etc/mysql/my.cnf



「bind-address」を「127.0.0.1」から「0.0.0.0」(全てのアドレスを待ち受け)に変更。


[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket         = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir         = /tmp
lc_messages_dir = /usr/share/mysql
lc_messages     = en_US
skip-external-locking
character-set-server=utf8
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address            = 127.0.0.1
bind-address            = 0.0.0.0




編集が終わったら、MariaDBを再起動。


# service mysql restart




ユーザー名「admin」、パスワード「P@ssw0rd」のユーザーを作成し、
外部からの接続を許可します。

データベースに接続し、以下のクエリーを事項。


grant all privileges on *.* to admin@'%' identified by 'P@ssw0rd' with grant option;





作成したユーザーで接続出来ました。
sampleデータベースを作成してみます。


# mysql -uadmin -pP@ssw0rd
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.1.11-MariaDB-1~jessie-log mariadb.org binary distribution

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> create database sample;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]>




別の端末から、こんなPythonスクリプトで接続を確認しました。


  1. # -*- coding:utf-8 -*-
  2. import MySQLdb
  3. con = MySQLdb.connect(
  4.     host='192.168.1.101',
  5.     db='sample',
  6.     user='admin',
  7.     passwd='P@ssw0rd',
  8.     charset='utf8')
  9. cur = con.cursor()
  10. cur.close()
  11. con.close()






関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2016/02/07(日) 17:49:13|
  2. MySQL
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<HeidiSQLでMySQL(MariaDB)データベースにSQL文を実行 | ホーム | Ubuntu KVMにWindos 10をインストールする>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1834-8f5c5aee
この記事にトラックバックする(FC2ブログユーザー)