*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]]