忍者ブログ
  • 2024.10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2024.12
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/11/23 06:40 】 |
DB使う
mysql入れてみる。

参考にしたページhttp://thinkit.co.jp/free/article/0707/5/1/

ストレージエンジンが選べる。確かに
MyISAM(トランザクション非サポート)
InnoDB(トランザクション機能サポート)
MEMORY(オンメモリデータベース)
NDB(クラスタ機能)

ページにはいろいろ書いてあるけど、よくわかんないのでとりあえずyum
% sudo yum install mysql
成功したっぽいメッセージがプロンプトに出る。

% mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

…エラーが出た。どうやら、mysqlサーバに接続できないとか。
どういうこっちゃ。
調べてみたけど古い情報多い。yum mysqlで調べてみると見つけたコマンド

% yum -y install mysql-server
というのがある。別なのか。sudoつけてやってみた。
これまた成功したっぽい。
もう一度試してみる

% mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.29 MySQL Community Server (GPL)

Copyright (c) 2000, 2012, 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>

おお、見慣れたいつものプロンプト。

結局

% sudo yum install mysql
% sudo yum -y install mysql-server

これだけで使えるようになった。

で、もう普段のように書ける。

mysql> create table ...なんちゃら

しかし、CREATE DATABASE ができない。権限の設定をちゃんとしていないせいか
ひとまずおいといて、最初からあったtestデータベース内で作業してみる


とりあえずcreate table.
CREATE TABLE user(
id int unsigned not null
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
とか。

打つのは面倒だし、一度書いた物が喪われるのは大変なので、ファイルに書いておく。
(実は mysql> show create table table_name; でCREATE文が出力されるけど)

適当なddlファイルを作って

use test;
DROP TABLE IF EXISTS user;
CREATE TABLE user ...

と書いて、
$ mysql < XXX.ddl
でOK.
でも、show create table文でいつでも取り出せるんだから、ddlを手書きする必要はないよね。
変更したいときも直接DBでalter文書いて、その度にshow create tableでddlに出力、の形の方がいい。

次は、perlから使ってみる。
有名だからとりあえずDBIを使う。
参考にしたページhttp://tech.bayashi.net/pdmemo/perl_dbi_mysql.html

$ sudo perl -MCPAN -e 'install DBI'


#! /usr/bin/perl
use strict;
use DBI;

my $data_source = "DBI:mysql:test";
my $dbh = DBI->connect($data_source);

my $create_table = <<"SQL";
create table book(
id int unsigned not null,
author varchar(64) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
SQL
$dbh->do($create_table);

$dbh->disconnect();

と書いて実行してみると…
おお、確かにtestデータベース内にbookテーブルができている!


PR
【2013/02/02 15:36 】 | サーバ | 有り難いご意見(0)
<<サーバプログラムで使ったperl技 | ホーム | fcgiプログラム>>
有り難いご意見
貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>