- 追加された行はこの色です。
- 削除された行はこの色です。
*MySQL [#m93eeef6]
RIGHT:更新日 &lastmod();
**MySQLのインストール [#r0532473]
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 \
--with-mysqld-user=mysql
--with-charset
デフォルトで使用される文字コードを指定します。EUCならujis、Shift-JISならsjis、UTF8ならutf8
--with-extra-charset
デフォルトで指定された文字コード以外をサポートしたい場合の指定です。
"--with-extra-charset=ujis,sjis,..."のように個別に指定できますが、
ここでは“all”とします。このオプションを指定することで、
makeをし直さずとも、異なる文字コードでサーバを起動することが可能
--with-mysqld-user
MySQLデーモンを起動するユーザーの指定
$ 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
+-----------+
| Databases |
+-----------+
| mysql |
| test |
+-----------+
全てのDBを表示するには(rootのパスワード設定後は)
$ /usr/local/bin/mysqlshow -u root -p
Enter password:*****
+-----------+
| Databases |
+-----------+
| moodle |
| mysql |
| test |
| xoops |
+-----------+
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;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *3620754A963ECB3D7296097F9DA00C1FA5476B03 |
| open2_06 | root | |
| open2_06 | | |
| localhost | | |
+-----------+------+-------------------------------------------+
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:
+-----------+
| Databases |
+-----------+
| mysql |
| mytest |
| test |
+-----------+
データベースの削除
# /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;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| ID | bigint(20) | YES | | NULL | |
| data2 | bigint(20) | YES | | NULL | |
| data3 | varchar(64) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
テーブル一覧
# /usr/local/bin/mysql -u root -p mytest
mysql> SHOW TABLES;
+------------------+
| Tables_in_mytest |
+------------------+
| t_test |
+------------------+
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;
+------+-------+--------+
| ID | data2 | data3 |
+------+-------+--------+
| 1 | 1001 | JE2ISM |
| 2 | 1002 | JF2LYU |
+------+-------+--------+
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;
+----------------------------+------------+-------------------------------------------+
| host | user | password |
+----------------------------+------------+-------------------------------------------+
| localhost | root | *B54F381EEBC80CBD7B9D80DB721541DE424E9F69 |
| uso5004.mie-chukyo-u.ac.jp | root | | <---注)root@uso5004.mie-chukyo-u.ac.jpではパスワードなしで入れるので必ず削除しておく必ず削除しておく
| localhost | | | <---注)このようなレコードがあるとuser名がなんでもOKなので必ず削除しておく
| localhost | moodleuser | *20C964FC973C0C3D416BA874CB20742CF2145D1E |
| 192.168.1.0/255.255.255.0 | okada | *3620754A963ECB3D7296097F9DA00C1FA5476B03 | <---ここに接続許可が示される
+----------------------------+------------+-------------------------------------------+
6 rows in set (0.00 sec)
リモートから
以下のコマンドで接続
$ /usr/local/bin/mysql -u okada -p mytest -h 192.168.1.1
Enter password:
参考
MySQLクイック・リファレンス
--------------------------------------------------------------------------------
RIGHT:[[元ページ:https://wwwism.dyndns.org/hp/linux/moodle.htm]]