無料Wikiサービス | デモページ
Linuxなどのメモ書き
検索

Adsense

MySQL セットアップ関連 の差分
Rev.17→Rev.18  追加箇所 削除箇所


MySQLのインストールに関するメモ書き。

1.インストール後の注意

1.(1) rootにパスワードを設定する。

インストール直後パスワード設定されていないので設定する

2. 匿名ユーザ削除する

インストール直後は、パスワードが設定されていないので設定する。

(2) 匿名ユーザを削除する。

匿名ユーザはtest*データベースに対してしか、操作をできないが一応削除しておいた方がよい。

mysql> DELETE FROM mysql.user WHERE user='';mysql> DELETE FROM mysql.user WHERE user='';

2.デーモン起動と停止


[起動]

# mysqld_safe --user=mysql &

2.デーモン起動と停止

上記はmysqlというUnixユーザでデーモンを起動する(なんでもよいが、rootだとセキュリティ上まずいので、mysql用にアカウントを用意するのがよい)。/usr/local/var/に書き込み権限がないとpidファイルが作れず、起動できないので注意。デフォルトではエラーログは以下に吐かれる。起動できない場合などは、ここを調査。

/usr/local/var/<HostName>.err

[起動]

# mysqld_safe --user=mysql &

pidファイルやエラーログの作成場所を変えるには、--pid-file,--logオプションで指定する。


[停止]

# mysqladmin shutdown

3.ユーザ情報

MySQL設定されているユーザ情報mysqlアカウント事前データベースuserテーブル作成しておくこと格納されている/usr/local/var/権限がないとpidファイルれず起動できない以下のようにして参照可能デフォルトではエラーログ以下かれる起動できない場合ここを調査

/usr/local/var/<HostName>.err
# mysql -u root -p mysql
mysql> select * from user;


pidファイルやエラーログの作成場所を変えるには、--pid-file,--logオプションで指定する。


[停止]

# mysqladmin shutdown

インストール直後はrootと匿名ユーザ(user欄が空のやつ)が定義されているのが見える。

mysql> select host,user from user;
+-----------------------+-----------+
| host | user |
+-----------------------+-----------+
| localhost | |
| localhost | root |
| localhost.localdomain | |
| localhost.localdomain | root |
+-----------------------+-----------+


3.ユーザ情報

ユーザ情報はmysqlデータベースのuserテーブルに格納されている。以下のようにして参照可能。

# mysql -u root -p mysql
mysql> select * from user;

現在のセッションで認証されたユーザは以下で取得できる。

mysql> SELECT CURRENT_USER();

インストール直後はrootと匿名ユーザ(user欄が空のやつ)が定義されているのが見える。

mysql> select host,user from user;
+-----------------------+-----------+
| host | user |
+-----------------------+-----------+
| localhost | |
| localhost | root |
| localhost.localdomain | |
| localhost.localdomain | root |
+-----------------------+-----------+

◎匿名ユーザ
匿名ユーザは基本的に全権限が抑止されているが、testおよびtest_*データベースに関しては全ての操作を行なえるようになっている。

4.ユーザの追加

全ての権限を持つ'manager'ユーザ(パスワードはsome_pass)を作成する。

mysql> GRANT ALL PRIVILEGES ON *.* TO manager@localhost
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO manager@'%'
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

%はワイルドカードで、Unixでいう'*'的なもの。上記の設定だと全てのホストを指す。'%.xxxx.com'のような指定もできる。

'%'で全ホストを指定しているのにlocalhostのエントリも追加しているのに注意。これを追加しないでuserテーブルが以下のような状態になっていた場合、ローカルから接続した場合、ホスト名がlocalhostのエントリにヒットしてしまう。((localhost,)か(localhost,root))ユーザ名が'manager'だと'root'にはマッチしないので(localhost,)にマッチして匿名ユーザでの接続になってしまう。

+-----------------------+-----------+
| host | user |
+-----------------------+-----------+
| % | manager |
| localhost | |
| localhost | root |
| localhost.localdomain | |
| localhost.localdomain | root |
+-----------------------+-----------+

接続時のアカウントのマッチングルールの詳細についてはここを参照。


アカウントを削除する場合は権限を削除後、DROP USERで削除する。
manager@localhostを削除する例:

mysql> REVOKE ALL,GRANT OPTION FROM manager@localhost;
mysql> DROP USER manager@localhost;

現在のセッションで認証されたユーザは以下で取得できる。

mysql> SELECT CURRENT_USER();

5.パスワード設定

[SQLから設定する場合]

# mysql -u root mysql
mysql> SET PASSWORD FOR
<UserName>=PASSWORD('<Password>');


◎匿名ユーザ
匿名ユーザは基本的に全権限が抑止されているが、testおよびtest_*データベースに関しては全ての操作を行なえるようになっている。

4.ユーザの追加

全ての権限を持つ'manager'ユーザ(パスワードはsome_pass)を作成する。

mysql> GRANT ALL PRIVILEGES ON *.* TO manager@localhost
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO manager@'%'
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

%はワイルドカードで、Unixでいう'*'的なもの。上記の設定だと全てのホストを指す。'%.xxxx.com'のような指定もできる。

'%'で全ホストを指定しているのにlocalhostのエントリも追加しているのに注意。これを追加しないでuserテーブルが以下のような状態になっていた場合、ローカルから接続した場合、ホスト名がlocalhostのエントリにヒットしてしまう。((localhost,)か(localhost,root))ユーザ名が'manager'だと'root'にはマッチしないので(localhost,)にマッチして匿名ユーザでの接続になってしまう。

+-----------------------+-----------+
| host | user |
+-----------------------+-----------+
| % | manager |
| localhost | |
| localhost | root |
| localhost.localdomain | |
| localhost.localdomain | root |
+-----------------------+-----------+

接続時のアカウントのマッチングルールの詳細についてはここを参照。


アカウントを削除する場合は権限を削除後、DROP USERで削除する。
manager@localhostを削除する例:

mysql> REVOKE ALL,GRANT OPTION FROM manager@localhost;
mysql> DROP USER manager@localhost;

5.パスワード設定

[SQLから設定する場合]

# mysql -u root mysql
mysql> SET PASSWORD FOR
<UserName>=PASSWORD('<Password>');

[シェルから設定する場合]

# mysqladmin -u <UserName> password <Password>

インストール直後、rootユーザにはパスワードがないので設定しておくこと。


Perlからの使用する場合

ライブラリをインストールする。

# perl -MCPAN -e shell
cpan> install DBI
cpan> install DBD::mysql

[シェルから設定する場合]

# mysqladmin -u <UserName> password <Password>

DBD::mysqlモジュールをインストールする際、MySQLの共有ライブラリを使用するので事前にMySQLの共有ライブラリへのパスを設定しておくこと。

(1) /etc/ld.so.confにMySQLライブラリのパスを追加。

include ld.so.conf.d/*.conf
/usr/X11R6/lib
/usr/local/lib
/usr/local/lib/mysql <== 環境に合わせてパスを追加

(2) キャッシュを作成。

# /sbin/ldconfig

インストール直後、rootユーザにはパスワードがないので設定しておくこと。


Perlからの使用する場合

ライブラリをインストールする。

# perl -MCPAN -e shell
cpan> install DBI
cpan> install DBD::mysql

DBD::mysqlモジュールをインストールする際、MySQLの共有ライブラリを使用するので事前にMySQLの共有ライブラリへのパスを設定しておくこと。

(1) /etc/ld.so.confにMySQLライブラリのパスを追加。

include ld.so.conf.d/*.conf
/usr/X11R6/lib
/usr/local/lib
/usr/local/lib/mysql <== 環境に合わせてパスを追加

(2) キャッシュを作成。

# /sbin/ldconfig