MySQLは、Webおよびサーバーアプリケーションに使用される一般的なデータベース管理システムです。ただし、MySQLはCentOSのリポジトリに存在しなくなり、MariaDBが提供されるデフォルトのデータベースシステムになりました。 MariaDBは、MySQLのドロップイン代替品と見なされており、一般的なデータベースシステムが必要な場合は十分です。インストール手順については、CentOS7ガイドのMariaDBを参照してください。
それでもMySQLを好む場合は、このガイドで、CentOS 7を実行しているLinodeにMySQLをインストール、構成、および管理する方法を紹介します。
大規模なMySQLデータベースは、かなりの量のメモリを必要とする場合があります。このため、このようなセットアップにはHighMemoryLinodeを使用することをお勧めします。
注 このガイドは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドには、接頭辞として sudo
が付けられます 。sudo
に慣れていない場合 コマンドを使用すると、ユーザーとグループのガイドを確認できます。
始める前に
-
「はじめに」と「サーバーの保護」ガイドに準拠し、Linodeのホスト名が設定されていることを確認してください。
ホスト名を確認するには、次のコマンドを実行します。
hostname hostname -f
最初のコマンドは短いホスト名を表示し、2番目のコマンドは完全修飾ドメイン名(FQDN)を表示する必要があります。
-
システムを更新します:
sudo yum update
-
wget
が必要になります このガイドを完了するには。次のようにインストールできます:yum install wget
MySQLのインストール
MySQLはコミュニティリポジトリからインストールする必要があります。
-
リポジトリをダウンロードして追加し、更新します。
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update
-
通常どおりMySQLをインストールし、サービスを開始します。インストール中に、.rpmファイルのGPG検証の結果を受け入れるかどうかを尋ねられます。エラーや不一致が発生しない場合は、
y
と入力します 。sudo yum install mysql-server sudo systemctl start mysqld
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ログインを無効にするか、テストデータベースを削除するかを選択できます。 yes
と答えることをお勧めします これらのオプションに。スクリプトの詳細については、MySQLリファレンスマニュアルを参照してください。
注 MySQL 5.7がインストールされている場合は、インストール中に作成された一時パスワードが必要になります。このパスワードは、
/var/log/mysql.log
に記載されています。 ファイルであり、次のコマンドを使用してすばやく見つけることができます。sudo grep 'temporary password' /var/log/mysqld.log
MySQLの使用
MySQLと対話するための標準ツールは、mysql
です。 mysql-server
とともにインストールするクライアント パッケージ。 MySQLクライアントは端末を介して使用されます。
ルートログイン
-
rootユーザーとしてMySQLにログインするには:
mysql -u root -p
-
プロンプトが表示されたら、mysql_secure_installationスクリプトの実行時に割り当てたルートパスワードを入力します。
次に、以下に示すように、ウェルカムヘッダーとMySQLプロンプトが表示されます。
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' identified by 'password';
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 systemctl stop mysqld sudo mysqld_safe --skip-grant-tables &
-
MySQLルートアカウントを使用してMySQLサーバーに再接続します。
mysql -u root
-
次のコマンドを使用して、rootのパスワードをリセットします。
password
を置き換えます 強力なパスワードを使用します。use mysql; update user SET PASSWORD=PASSWORD("password") WHERE USER='root'; flush privileges; exit
-
次に、MySQLを再起動します。
sudo systemctl start mysqld
MySQLの調整
MySQL Tunerは、実行中のMySQLインスタンスに接続し、ワークロードに基づいた構成の推奨事項を提供するPerlスクリプトです。理想的には、MySQLインスタンスは、チューナーを実行する前に少なくとも24時間動作している必要があります。インスタンスの実行時間が長いほど、MySQLTunerからのアドバイスが向上します。
-
MySQLチューナーをホームディレクトリにダウンロードします。
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
-
実行するには:
perl ./mysqltuner.pl
MySQLrootユーザーの名前とパスワードの入力を求められます。出力には、一般的な推奨事項と調整する変数の2つの関心領域が表示されます。
MySQL Tunerは、MySQLサーバーを最適化するための優れた出発点ですが、LinodeでMySQLを利用するアプリケーションに合わせた構成について追加の調査を行うのが賢明です。
まだいくつか質問がありますか?私たちのコミュニティに参加して、他のLinodeやLinuxの愛好家に質問を投稿してください。
関連する質問:
- Centos7にphpMyAdminをインストールする方法
- LinodeでLAMP/LEMPスタックを設定するにはどうすればよいですか?
- MySQLとMongoDBの両方を実行するにはどうすればよいですか?
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- MySQL5.6リファレンスマニュアル
- PHPMySQLマニュアル
- DBD::mysqlのPerlDBIの例
- MySQLdbユーザーガイド
- MySQLチューナーチュートリアル