kuroの覚え書き

96の個人的覚え書き

MySQL版データベースアプリを実機サーバでテスト(するためのサーバ環境構築)

Python3が入ってないし。
https://weblabo.oscasierra.net/python3-centos7-yum-install/
を参考にPython3のインストールから。

# yum install -y https://centos7.iuscommunity.org/ius-release.rpm

3.6系を入れることにする

# yum install -y python36u python36u-devel python36u-pip

/usr/bin/python3.6にインストールされたので.bashrcに

alias python3='/usr/bin/python3.6'

と追加してpython3で起動できるようにしておく。それか

$ sudo ln -s /bin/python3.6 /bin/python3

リンクを張っておいたほうが確実か。


pip3をインストール

# easy_install-3.6 pip

MySQLが入ってない。
MariaDBをインストールしよう。
https://qiita.com/sawarame/items/c7d188214128c4017081
CentOS」→「CentOS 7 (x86_64)」→「10.2」

/etc/yum.repos.d/mariadb.repoを作成

# MariaDB 10.2 CentOS repository list - created 2018-01-09 02:12 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

インストール

$ sudo yum install MariaDB-server MariaDB-client

起動

$ sudo /etc/init.d/mysql start

MySQLにアクセスする

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.2.12-MariaDB MariaDB Server

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

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

MariaDB [(none)]> 

インストールは成功した模様。まずはrootにパスワードを設定しておく。

MariaDB [(none)]> set password for 'root'@'localhost'=password('xxxxxxxxxxx');

管理を容易にするためにlocal以外からのアクセスができるようポートを開けてやる必要があるかな。
あとデータベースアプリ用のポートも開けないと。
https://eng-entrance.com/linux-centos-port

しかしroot userのリモートログインはちょいと避けたほうが良いし、その他セキュリティ面の初期設定をやっとく。

$ sudo /usr/bin/mysql_secure_installation

すでにパスワードは設定したのでそこはnにして、その他はすべてyにしておく。



というわけで無事アプリを走らせることに成功したのだけれど。
速度が出ない。検索は数ミリsecのオーダーだけど、検索結果をWEBページにレンダリングする部分が絶望的に遅い。
検索にかかる時間も、実際のところSQLiteで3msくらいであるところがMySQLだと8msくらいかかっているわけだから、速度は2倍以上遅いということになるんだろう。これはPythonの限界なのか?それともMySQL-Pythonの相性の問題?pythonのプログラムはそんなに複雑な処理をさせているわけではないはずなんだけどなあ。nginx+uWSGIにwebサーバ機能を移行すれば改善するんだろうか。