Symfoware

Symfowareについての考察blog

FreeBSD 10.2にMySQL 5.6をインストール&外部接続許可

FreeBSD 10.2にMySQL 5.6をインストールした時のメモです。


インストールと起動



pkgコマンドでインストールしました。


# pkg install mysql56-server




起動を行う前に、/etc/rc.confに1行追記します。


# vi /etc/rc.conf




内容は以下の1行。


mysql_enable="YES"




これを記載していないと、起動時こんなエラーメッセージが表示されます。


Cannot 'start' mysql. Set mysql_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'.




追記が終わったら、MySQLを起動。


# /usr/local/etc/rc.d/mysql-server start




ユーザー:root、パスワード無しで接続できます。


# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.24 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>







文字コードの設定



文字コードにutf-8を使用するようにします。
現在の文字コードは「show variables like "chara%";」で確認できます。

初期状態は以下のとおり。


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




/usr/local/my.cnfを編集。


# vi /usr/local/my.cnf




赤字の部分を追記しました。
[client]はセクションごと追加します。


[mysqld]
...
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-server=utf8
skip-character-set-client-handshak

[client]
default-character-set=utf8




MySQLを再起動。


# /usr/local/etc/rc.d/mysql-server restart




utf-8に変更できました。


mysql> show variables like "chara%";
+--------------------------+----------------------------------+
| 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/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)








ユーザーの作成と外部接続許可



adminというユーザーを作成し、外部からの接続を許可してみます。
以前書いた記事を参考にしました。
MariaDB 5.5の外部接続許可

ユーザー「admin」をパスワード「P@ssw0rd」で作成。
外部からの接続を受け入れます。


mysql> grant all privileges on *.* to admin@'%' identified by 'P@ssw0rd' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql>




接続してテスト用のデータベース、テーブルを作りました。


# mysql -uroot

mysql> create database sample;
mysql> use sample
Database changed

mysql> create table test (id int, name varchar(100));
mysql> insert into test (id,name) values (1, 'test1');
mysql> insert into test (id,name) values (2, 'test2');




別の端末から適当に作成したPythonプログラムでデータを読み取ってみます。


  1. # -*- coding:utf-8 -*-
  2. import pymysql
  3. con = pymysql.connect(host='192.168.1.102',
  4.                      user='admin',
  5.                      password='P@ssw0rd',
  6.                      db='sample',
  7.                      charset='utf8mb4',
  8.                      cursorclass=pymysql.cursors.DictCursor)
  9. cur = con.cursor()
  10. cur.execute('select * from test')
  11. for row in cur:
  12.     print row['id'], row['name']
  13. cur.close()
  14. con.close()




ちゃんと接続できていますね。


$ python sample.py
1 test1
2 test2


関連記事

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

  1. 2015/10/04(日) 18:16:37|
  2. MySQL
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Ubuntu 14.04にpgAdminの最新バージョンをインストールする | ホーム | Generator for Java 楕円の描画機能>>

コメント

コメントの投稿


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

トラックバック

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