MySQL

更新日 2010-11-26 (金) 21:59:44

MySQLのインストール

MySQLのソースをここの下のほうのSource downloadsからDownload.

$ su

# /usr/sbin/useradd mysql

homeディレクトリを/usr/local/varに変更

$ tar zxvf mysql-4.1.12.tar.gz $ cd mysql-4.1.12 $ ./configure --with-charset=ujis -with-extra-charsets=all \

$ make $ su

# make install データベースの初期化

以下データベースコマンドをrootで行っているがシステム関係以外は一般ユーザでもOK

# /usr/local/bin/mysql_install_db --user=mysql Installing all prepared tables Fill help tables

To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system (略) he latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at https://order.mysql.com

# /usr/local/var(データベース保存先)のオーナを変更

# chown -R mysql.mysql /usr/local/var 起動

# /usr/local/bin/mysqld_safe --user=mysql & 動作確認

以下のコマンドで結果が以下のようになればOK

# /usr/local/bin/mysqlshow

  1. -----------+
    Databases
  2. -----------+
    mysql
    test
  3. -----------+

全てのDBを表示するには(rootのパスワード設定後は)

$ /usr/local/bin/mysqlshow -u root -p Enter password:*****

  1. -----------+
    Databases
  2. -----------+
    moodle
    mysql
    test
    xoops
  3. -----------+

MySQLを動かす

MySQLのroot のパスワード設定

$ /usr/local/bin/mysqladmin -u root password '******' <--(1)

上記のmysqladminでパスワードを設定したときは以下のコマンドでreloadする必要がある $ /usr/local/bin/mysqladmin -u root -p reload Enter password:

# mysql -u root -p Enter password: <--1(1)のパスワードを入力 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 18 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

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

  1. -----------+------+-------------------------------------------+
    hostuserpassword
  2. -----------+------+-------------------------------------------+
    localhostroot*3620754A963ECB3D7296097F9DA00C1FA5476B03
    open2_06root
    open2_06
    localhost
  3. -----------+------+-------------------------------------------+ 4 rows in set (0.00 sec)

rootでmysqlにログイン

# mysql -u root mysql

もうとつのrootのパスワードを設定(root@open2_06) SET PASSWORD 構文でパスワードの設定。

mysql> SET PASSWORD FOR root@open2_06 = PASSWORD('*****'); Query OK, 0 rows affected (0.00 sec) すべてのことが出来るspadminというユーザを登録(ローカルのみ)

mysql> GRANT ALL PRIVILEGES ON *.* TO spadmin@localhost IDENTIFIED BY 'mysql(パスワード)' WITH GRANT OPTION; Query OK, 0 rows affected (0.01 sec)

リモートからもすべてのことが出来るには mysql> GRANT ALL PRIVILEGES ON *.* TO spadmin@"%" IDENTIFIED BY 'mysql(パスワード)' WITH GRANT OPTION; の追加が必要(リモートからの許可を与えるにはローカルも必要)

GRAN実行後は mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) を必ず実行

注)ユーザ名はmysql -uで指定しない限りloginユーザ名になる

パスワードの変更

mysql> SET PASSWORD FOR spadmin@localhost = PASSWORD('*******'); Query OK, 0 rows affected (0.00 sec)

ユーザ削除

ユーザ削除は権限を剥奪後削除する

$ /usr/local/bin/mysql -u root -p mytest

権限を剥奪(revoke)

revoke 権限 on データベース名.テーブル名 from ユーザ名@ホスト名;

mysql> revoke all on mytest.* from okada@'192.168.1.1'; Query OK, 0 rows affected (0.00 sec)

登録ユーザの削除

mysql> delete from mysql.user where host='192.168.1.1' and user='okada';

mysql> flush privileges; or mysql> DELETE FROM mysql.user WHERE user='okada'; データベースの作成

# /usr/local/bin/mysqladmin -u root -p create mytest

文字コードを指定してデータベースの作成

mysql> CREATE DATABASE hoge CHARACTER SET SJIS; データベースの一覧

# /usr/local/bin/mysqlshow -u root -p Enter password:

  1. -----------+
    Databases
  2. -----------+
    mysql
    mytest
    test
  3. -----------+ データベースの削除

# /usr/local/bin/mysqladmin -u root -p drop (DB名)

or

mysql> drop database (DB名);

このコマンドだけではmysql.dbテーブルに残っているようなのでデータベースを完全に削除するには

mysql> delete from mysql.db where Db='(DB名)';

テーブルの作成

t_test.create create table t_test (

 ID           int8,
 data2          int8,
 data3          varchar(64)

);

# /usr/local/bin/mysql -u root -p mytest < t_test.create Enter password:

mysql> show fields from t_test;

  1. -------+-------------+------+-----+---------+-------+
    FieldTypeNullKeyDefaultExtra
  2. -------+-------------+------+-----+---------+-------+
    IDbigint(20)YESNULL
    data2bigint(20)YESNULL
    data3varchar(64)YESNULL
  3. -------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) テーブル一覧

# /usr/local/bin/mysql -u root -p mytest

mysql> SHOW TABLES;

  1. ------------------+
    Tables_in_mytest
  2. ------------------+
    t_test
  3. ------------------+ 1 row in set (0.00 sec) データの入力等(postgresqlと同じ)

mysql> insert into t_test values(1, 1001, 'JE2ISM'); Query OK, 1 row affected (0.00 sec)

mysql> select * from t_test;

  1. ------+-------+--------+
    IDdata2data3
  2. ------+-------+--------+
    11001JE2ISM
    21002JF2LYU
  3. ------+-------+--------+ 2 rows in set (0.00 sec) データベースのバックアップ/リストア

データベースのバックアップ

# /usr/local/bin/mysqldump -u root -p --default-character-set=latin1 mytest > mytest.out

EUCのときは--default-character-set=ujisに,UTF8は utf8にする。

データベースの削除

# /usr/local/bin/mysqladmin -u root -p drop mytest Enter password: Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed.

Do you really want to drop the 'mytest' database [y/N] y Database "mytest" dropped

データベースのリストア

先に必要ならGRANTでユーザ等に許可を与える。

# /usr/local/bin/mysqladmin -u root -p create mytest

# /usr/local/bin/mysql -u root -p mytest < mytest.out

次のコマンドを実行

# /usr/local/bin/mysqladmin flush-privileges ネットワーク上から接続許可するには

$ /usr/local/bin/mysql -u root -p

で接続し、許可するユーザ、パスワード、ネットワーク(ホスト)を指定する。

mysql> GRANT ALL PRIVILEGES ON mytest.* TO okada@'192.168.1.0/255.255.255.0'IDENTIFIED BY '*****' WITH GRANT OPTION;

mysql> flush privileges;

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

  1. ----------------------------+------------+-------------------------------------------+
    hostuserpassword
  2. ----------------------------+------------+-------------------------------------------+
    localhostroot*B54F381EEBC80CBD7B9D80DB721541DE424E9F69
    | uso5004.mie-chukyo-u.ac.jp | root | | <---注)root@uso5004.mie-chukyo-u.ac.jpではパスワードなしで入れるので必ず削除しておく必ず削除しておく | localhost | | | <---注)このようなレコードがあるとuser名がなんでもOKなので必ず削除しておく
    localhostmoodleuser*20C964FC973C0C3D416BA874CB20742CF2145D1E
    | 192.168.1.0/255.255.255.0 | okada | *3620754A963ECB3D7296097F9DA00C1FA5476B03 | <---ここに接続許可が示される
  3. ----------------------------+------------+-------------------------------------------+ 6 rows in set (0.00 sec)

リモートから

以下のコマンドで接続

$ /usr/local/bin/mysql -u okada -p mytest -h 192.168.1.1 Enter password:

参考

MySQLクイック・リファレンス


元ページ

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS