MySQLは人気のあるデータベース管理システムであり、何千ものWebおよびサーバーアプリケーションのデータストレージプロバイダーとして使用されています。このガイドは、初心者がCentOS5LinodeでMySQLを使い始めるのに役立ちます。このチュートリアルでは、コンピューティングインスタンスの設定と保護で概説されている手順を実行し、システムが最新であり、SSH経由でrootとしてLinodeにログインしていることを前提としています。
システム構成
/etc/hosts
を確認してください ファイルには、以下に示すような適切なエントリがあります。
- ファイル:/ etc / hosts
上記の例では、必ずLinodeのパブリックIPアドレスを「12.34.56.78」に置き換えてください。
MySQLのインストール
次のコマンドを発行して、システムを更新し、MySQLをインストールします。
yum update
yum install mysql-server
/sbin/chkconfig --levels 235 mysqld on
MySQLサーバーパッケージは、依存関係およびクライアントライブラリとともにサーバーにインストールされます。次のコマンドを実行してMySQLを起動します。
service mysqld start
MySQLの構成
MySQLをインストールした後、mysql_secure_installation
を実行することをお勧めします 、MySQLの保護に役立つプログラム。 mysql_secure_installation
の実行中 、MySQLのrootパスワードを変更し、匿名ユーザーアカウントを削除し、ローカルホストの外部でrootログインを無効にし、テストデータベースを削除する機会が与えられます。これらのオプションに「はい」と答えることをお勧めします。特権テーブルを再ロードするように求められた場合は、[はい]を選択します。次のコマンドを実行して、プログラムを実行します。
mysql_secure_installation
デフォルトでは、MySQLはメモリに関してサーバー環境についていくつかの仮定をします。 MySQLをより保守的に構成するには、構成ファイルのいくつかの設定を編集する必要があります。ファイルは次のようになります。
- ファイル:/ etc / my.cnf
これらの設定は、メモリが少ない環境で推奨される値にすぎません。サーバーに適した値に自由に調整してください。このトピックの追加リソースについては、このチュートリアルの最後にある「詳細情報」セクションを参照してください。
MySQLの構成に変更を加えた場合は、次のコマンドを発行して再起動します。
service mysqld restart
MySQLはデフォルトでローカルホスト(127.0.0.1)にバインドします。ローカルクライアントを使用してデータベースに接続する方法については、安全なMySQLリモートアクセスガイドを参照してください。
パブリックIPでMySQLへの無制限のアクセスを許可することはお勧めしませんが、bind-address
を変更することで、リッスンするアドレスを変更できます。 パラメータ。 MySQLをパブリックIPにバインドする場合は、特定のIPアドレスからの接続のみを許可するファイアウォールルールを実装する必要があります。
MySQLの使用
MySQLと対話するための標準ツールは、mysql
です。 クライアントプログラム。開始するには、プロンプトで次のコマンドを発行します。
mysql -u root -p
ルートMySQLユーザーのパスワードを入力するように求められます。 MySQLのインストール時に割り当てたパスワードを入力すると、MySQLモニターディスプレイが表示されます。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
MySQLプロンプトのコマンドのリストを生成するには、\h
と入力します :
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'
mysql>
データベースを作成して、それにユーザーを割り当てましょう。 MySQLプロンプトで次のコマンドを発行します。
CREATE DATABASE testdb;
CREATE USER 'testuser'@localhost IDENTIFIED BY 'CHANGEME';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost;
exit
それでは、testuser
としてMySQLクライアントに再度ログインしましょう。 「customers」というサンプルテーブルを作成します。次のコマンドを発行します:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
これにより、整数のINTタイプの顧客IDフィールド(新しいレコードの場合は自動インクリメントされ、主キーとして使用されます)と、顧客の名前を格納するための2つのフィールドを持つテーブルが作成されます。もちろん、これよりもはるかに多くの情報を顧客に保存したいと思うかもしれませんが、それでも一般的なケースの良い例です。
MySQLルートパスワードのリセット
ルートMySQLパスワードを忘れた場合は、次のコマンドを発行してパスワードを回復できます。
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql -u root
パスワードリセットの次の部分は、MySQLクライアントプログラム内で実行されます。
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE USER='root';
FLUSH PRIVILEGES;
exit
最後に、次のコマンドを発行してMySQLを再起動します。
service mysqld restart
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- MySQL5.1リファレンスマニュアル
- PHPMySQLマニュアル
- DBD::mysqlのPerlDBIの例
- MySQLdbユーザーガイド