Mac, HomebrewでPL/Pythonを利用する

Mac OS 10 Yosemite + HomebrewでPostgreSQLを利用する。

Pythonは、python3をhomebrewでインストール済みとする。

1. PostgreSQLのインストール

$ brew install --with-python postgres

postgresでPL/Pythonを利用するために–with-pythonオプションを付加する。

以前の設定が残っている場合削除する。

$ rm -rf /usr/local/var/postgres

データベースの初期化。

-Uオプションでしていしたユーザ名がスーパーユーザとして追加される。

指定しない場合、ログインユーザ名が使われる。

$ initdb -U postgres /usr/local/var/postgres

起動。

$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

psqlできることの確認とユーザが作られていることの確認。

$ psql -U postgres
postgres=# \du

以下のエラーがでてpsqlできない場合は、古いpostgresプロセスが生きている可能性があるのでkillしてから再トライ。

psql: FATAL:  could not open relation mapping file "global/pg_filenode.map": No such file or directory

データベースの作成。

$ createdb -U postgres -E utf-8 hoge_db

終了。

$ pg_ctl stop

 

2. PL/Pythonの設定

現在使えるPL一覧を確認。通常PL/PgSQLのみ。

$ createlang -U postgres --list hoge_db
 Name | Trusted?
 ---------+----------
 plpgsql | yes

PL/Pythonを追加する。

$ createlang -U postgres plpython2u hoge_db

あとは言語としてpythonが使える。

 

参考

MySQLを手動インストール

Linux(CentOS 6.4)上でMySQLの最新版を使用するために、yumを使わず手動インストールする。

MySQLは公式サイトでRPMが配布されているので、それをダウンロードしてインストールするだけですむ。

以下、基本的にはここを参考に進める。

1. RPMのダウンロード

公式サイトのDwonloadから「MySQL Community Edition (GPL)」のダウンロードに進む。Linux – Genericの以下3パッケージをダウンロードする。

  • Linux – Generic (glibc 2.5) (x86, 64-bit), RPM Package, Client Utilities
  • Linux – Generic (glibc 2.5) (x86, 32-bit), RPM Package, Compatibility Libraries
  • Linux – Generic (glibc 2.5) (x86, 32-bit), RPM Package, MySQL Server

通常、ServerとClientがあれば十分だが、Cent OSの場合、デフォルトで古いmysql-libsがインストールされており、これをバージョンアップするためにCompatibility Librariesが必要。

各パッケージの内容はここを参照。

2. インストール

postfixの依存関係でエラーがでたので、取り敢えずpostfixをアンインストール。

yum remove postfixだと、依存関係があるcronなどもアンインストールされてしまうため、rpmコマンドを使用する。

# rpm -e --nodeps postfix

MySQLのインストール。

#yum localinstall MySQL-shared-compat-5.6.14-1.linux_glibc2.5.i386.rpm
#yum localinstall MySQL-server-5.6.14-1.linux_glibc2.5.i386.rpm
#yum localinstall MySQL-client-5.6.14-1.linux_glibc2.5.x86_64.rpm

インストールされていることを確認。

$ yum list installed | grep MySQL

mysqlユーザとグループが追加されている。

$ cat /etc/passwd 
$ cat /etc/group

 

3. 使用準備

初期化

# mysql_install_db --user=mysql

サービス開始。

# mysqld_safe &

mysqlにログインしてrootユーザのパスワードを設定。

# mysql -u root mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');

access denied for user ‘root’@’localhost’ (using password: NO)

のエラーでmysqlにログインできない場合は、ユーザテーブルの作成がうまくいっていない可能性があるので、ここを参考に以下で対処する。

# mysqld_safe --skip-grant-tables &
# mysql -u root mysql
mysql> select * from user; → 現在のユーザテーブルを確認
mysql> truncate table user; → ユーザテーブルを空に。
mysql> flush privileges;
mysql> grant all privileges on *.* to root@localhost identified by 'パスワード' with grant option; → ユーザを追加
mysql> flush privileges;

以上でインストールは完了。次回からはパスワードありの以下でログインする。

# mysql -u root -p

 

4. 基本的なコマンド

データベースの一覧

mysql> show databases;

テーブルの一覧

mysql> use テーブル名;
mysql> show tables;

テーブルの内容確認

mysql> describe テーブル名;

現在のユーザ情報確認

mysql> select user, host, password from mysql.user;

パスワードがない、匿名ユーザを削除

mysql> delete from mysql.user where password='';

データベース作成

mysql> create database データベース名 character set utf8;

ユーザ作成

mysql> grant all privileges on データベース名.テーブル名 to 'ユーザ名'@'localhost' identified by 'パスワード' with grant option;
 → データベース名、テーブル名は*が可能

 

■参考文献