MySQLは、Webおよびサーバーアプリケーションに使用される一般的なデータベース管理システムです。このガイドでは、Ubuntu 14.04 LTS(Trusty Tahr)を実行しているLinodeにMySQLをインストール、構成、および管理する方法を紹介します。
このガイドでは、HighMemoryLinodeを使用することをお勧めします。
注 このガイドは、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のrootパスワードを変更するか、匿名ユーザーアカウントを削除するか、ローカルホストの外部でrootログインを無効にするか、テストデータベースを削除するかを選択できます。これらのオプションに「はい」と答えることをお勧めします。スクリプトの詳細については、MySQLリファレンスマニュアルを参照してください。
MySQLを使用
MySQLと対話するための標準ツールは、mysql
です。 mysql-server
とともにインストールされるクライアント パッケージ。 MySQLクライアントには端末からアクセスします。
ルートログイン
-
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
はユーザーのパスワードです。1 2 3
create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser';
while ユーザーを作成することで、このプロセスを短縮できます。 データベース権限の割り当て:
1 2
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
MySQLを終了します。
exit
サンプルテーブルを作成する
-
testuser
として再度ログインします 。mysql -u testuser -p
-
customers
というサンプルテーブルを作成します 。これにより、タイプがINT
の顧客IDフィールドを持つテーブルが作成されます。 整数(新しいレコードの場合は自動インクリメント、主キーとして使用)、および顧客の名前を格納するための2つのフィールド。1 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を起動します:
sudo service mysql start
これで、mysql -u root -p
を使用して再度ログインできるようになります。 。
MySQLの調整
MySQL Tunerは、実行中のMySQLインスタンスに接続し、ワークロードに基づいた構成の推奨事項を提供するPerlスクリプトです。理想的には、MySQLインスタンスは、チューナーを実行する前に少なくとも24時間動作している必要があります。インスタンスの実行時間が長いほど、MySQLTunerからのアドバイスが向上します。
-
UbuntuのリポジトリからMySQLチューナーをインストールします:
sudo apt-get install mysqltuner
-
実行するには:
mysqltuner
MySQLrootユーザーの名前とパスワードの入力を求められます。出力には、一般的な推奨事項と調整する変数の2つの関心領域が表示されます。
MySQLチューナーはMySQLサーバーを最適化するための優れた出発点ですが、LinodeでMySQLを利用するアプリケーションに合わせた構成について追加の調査を行うのが賢明です。
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- MySQL5.5リファレンスマニュアル
- PHPMySQLマニュアル
- DBD::mysqlのPerlDBIの例
- MySQLdbユーザーガイド