Tweet
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Home > > Macにユーザ権限でmysqlをソースから(あと、DBD::mysqlも)
Home > > Macにユーザ権限でmysqlをソースから(あと、DBD::mysqlも)
Home > Perl > Macにユーザ権限でmysqlをソースから(あと、DBD::mysqlも)
Tweet
SQLiteでサイトを作ってたんだけど、
同時更新を頻繁にするようなやつはやめといた方が良いと聞いたので、
急遽MySQLに変更。
xamppはすぐパスワード聞いてきて嫌なので、ソースからユーザ権限で入れてみる。
あんまりSnow Leopard向けの情報がなかったのでメモっておきます。
参考サイトは以下の3つ。
MySQL 5.0.45をソースからインストールする on CentOS4.4 - Developer☆STYLE
MySQLをソースからインストール(RedHat9) - FreeStyleWiki
MySQL
では、始めます。
まず、MySQL :: MySQL 5.5
からtar.gzをダウンロードして展開しておく。
ここで多くの手順ではmysqlユーザを作れと書いてあるけど、
ハマったのでログインユーザ(僕の場合は「t」)をmysql用のユーザにする。
※ 元々_mysqlなるユーザがいたせい?
ということで特になにもせずにインストール作業に入る。
sudo rm -rf mysql
make clean
1回ミスったので消す
./configure --prefix=/Users/t/mysql --with-charset=utf8 \
--with-mysqld-user=t
make
make install
特に何もエラーは出ず
cd
cp -p mysql-5.5.0-m2/support-files/my-small.cnf ./my.cnf
ホームディレクトリに設定ファイルを置く
乳牛日記: MySQL5 パラメータファイル(my.cnf)のおき場所
vi my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysqld]
default-character-set=utf8
:wq
文字コードをutf8に
mysql/bin/mysql_install_db
初期化
(mysqlユーザでやった時はここで失敗した)
mysql/bin/mysqld_safe
デーモン起動
ps -ef | grep mysql
mysql/bin/mysqladmin version
起動確認
これでルート権限不要なmysql実行環境ができた。
もうちょっと残作業を。
vi .profile
/Users/t/mysql/bin:
source .profile
PATHに追加
mysqladmin -u root password 'password'
パスワード設定
mysql -u root -p
password> ********
パスワードを使用してログイン
mysql>show variables like 'char%';
文字コードがutf8になってることを確認
mysql>show databases;
mysql>use mysql;
mysql>show tablse;
mysql>select user,password,host from user;
主要なコマンドを一通り叩いてみる。
すんなりできた。
はじめからログインユーザでやれば良かったorz
最後にperl(CGI)からの接続テスト。
参考:PerlからMySQLに接続する(DBD::mysql) - Max OS X LeopardでAMP環境を構築しよう - Apache, MySQL, PHP, Perlで作る開発環境 - futomi's CGI Cafe
mysqld_safe
mysql -u root -p
create database t;
use t;
create table test (id int, name text, blog text);
insert test values (0, 'tnantoka', 'bornneet');
select * from test;
テスト用のデータベース・テーブルを準備
sudo cpan
cpan> install DBD::mysql
cpan> q
CPANでDBD::mysql(全部小文字)のインストール
cd apache/cgi-bin
vi mysql.cgi
#!/opt/local/bin/perl
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect("DBI:mysql:t", "root", "xxxxxxxx");
my $sth = $dbh->prepare("SELECT * FROM test");
$sth->execute;
print "Content-Type: text/html\n\n";
print '<pre>';
print "id\tname\tblog\n";
while(my @row = $sth->fetchrow_array) {
print join "\t", @row;
}
print '</pre>';
$sth->finish();
$dbh->disconnect();
:wq
テスト用のスクリプト
chmod +x mysql.cgi
実行権限をつける
DBD::mysqlでこけるって記事を結構みかけたけど、
特に何も起こらなかった。
さて、MySQLで開発を進めるか。(大学でPHP触ってた時依頼かぁ)