MySQLは、Webおよびサーバーアプリケーションに使用される一般的なデータベース管理システムです。このガイドでは、Ubuntu 12.04 LTS(Precise Pangolin)を実行しているLinodeにMySQLをインストール、構成、および管理する方法を紹介します。
注 このガイドは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドには、接頭辞として sudo
が付けられます 。sudo
に慣れていない場合 コマンドを使用すると、ユーザーとグループのガイドを確認できます。
前提条件
-
まだ行っていない場合は、Linodeアカウントとコンピュートインスタンスを作成します。 Linode入門とコンピューティングインスタンスの作成ガイドをご覧ください。
-
コンピューティングインスタンスのセットアップと保護ガイドに従って、システムを更新し、ホスト名を構成します。タイムゾーンを設定し、制限付きユーザーアカウントを作成し、SSHアクセスを強化することもできます。
ホスト名を確認するには、次のコマンドを実行します。
hostname hostname -f
最初のコマンドは短いホスト名を表示し、2番目のコマンドは完全修飾ドメイン名(FQDN)を表示する必要があります(割り当てられている場合)。
MySQLのインストール
sudo apt-get install mysql-server
インストールプロセス中に、以下に示すように、MySQLrootユーザーのパスワードを設定するように求められます。強力なパスワードを選択し、後で参照できるように安全な場所に保管してください。
MySQLはデフォルトでローカルホスト(127.0.0.1)にバインドします。 SSHトンネルを使用したデータベースへの接続については、MySQLリモートアクセスガイドを参照してください。
注 パブリックIPでMySQLへの無制限のアクセスを許可することはお勧めしませんが、 bind-address
を変更することで、リッスンするアドレスを変更できます。/etc/my.cnf
のパラメータ 。 MySQLをパブリックIPにバインドする場合は、特定のIPアドレスからの接続のみを許可するファイアウォールルールを実装する必要があります。
ハードMySQLサーバー
mysql_secure_installationスクリプトを実行して、デフォルトのMySQLインストールにおけるいくつかのセキュリティ上の懸念に対処します。
sudo mysql_secure_installation
MySQLルートパスワードの変更、匿名ユーザーアカウントの削除、ローカルホスト外でのルートデータベースログインの無効化、およびテストデータベースの削除を選択できます。これらのオプションに「はい」と答えることをお勧めします。スクリプトの詳細については、MySQLリファレンスマニュアルを参照してください。
MySQLをデプロイ
MySQLと対話するための標準ツールは、mysql
です。 mysql-server
とともにインストールされるクライアント パッケージ。
ルートログイン
-
rootユーザーとしてMySQLにログインするには:
mysql -u root -p
-
プロンプトが表示されたら、
mysql_secure_installation
のときに割り当てたルートパスワードを入力します スクリプトが実行されました。次に、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ユーザーとデータベースを作成する
-
以下の例では、
testdb
データベースの名前、testuser
はユーザーであり、password
はユーザーのパスワードです。create database testdb; create user 'testuser'@localhost identified by 'password'; grant all on testdb.* to 'testuser';
while ユーザーを作成することで、このプロセスを短縮できます。 データベース権限の割り当て:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
MySQLを終了します。
exit
サンプルテーブルを作成する
-
testuser
として再度ログインします 。mysql -u testuser -p
-
customers
というサンプルテーブルを作成します 。これにより、タイプがINT
の顧客IDフィールドを持つテーブルが作成されます。 整数(新しいレコードの場合は自動インクリメント、主キーとして使用)、および顧客の名前を格納するための2つのフィールド。use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
次に、MySQLを終了します。
exit
MySQLルートパスワードをリセット
ルートMySQLパスワードを忘れた場合は、リセットできます。
-
現在のMySQLサーバーインスタンスを停止します。
sudo service mysql stop
-
dpkgを使用して、MySQLが最初のインストールで実行する構成プロセスを再実行します。再度、rootパスワードを設定するように求められます。
sudo dpkg-reconfigure mysql-server-5.5
これで、mysql -u root -p
を使用して再度ログインできるようになります。 。
MySQLの調整
MySQL Tunerは、実行中のMySQLインスタンスに接続し、ワークロードに基づいた構成の推奨事項を提供するPerlスクリプトです。理想的には、MySQLインスタンスは、チューナーを実行する前に少なくとも24時間動作している必要があります。 MySQL Tunerの推奨事項は、インスタンスの実行時間が長いほど正確になります。
-
UbuntuのリポジトリからMySQLTunerをインストールします。
sudo apt-get install mysqltuner
-
実行するには:
mysqltuner
MySQLrootユーザーの名前とパスワードの入力を求められます。出力には、一般的な推奨事項と調整する変数の2つの関心領域が表示されます。
MySQLチューナーはMySQLサーバーを最適化するための優れた出発点ですが、LinodeでMySQLを利用するアプリケーションに合わせた構成については追加の調査をお勧めします。
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- MySQL5.1リファレンスマニュアル
- PHPMySQLマニュアル
- DBD::mysqlのPerlDBIの例
- MySQLdbユーザーガイド