sql >> データベース >  >> RDS >> Mysql

MySQLをDebian8にインストールする方法

    MySQLは、Webおよびサーバーアプリケーションに使用される一般的なデータベース管理システムです。このガイドでは、Debian 8(Jessie)を実行しているLinodeにMySQLをインストール、構成、および管理する方法を紹介します。

    大規模なMySQLデータベースは、かなりの量のメモリを必要とする場合があります。このため、このようなセットアップにはHighMemoryLinodeを使用することをお勧めします。

    注 このガイドは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドには、接頭辞としてsudoが付けられます 。 sudoに慣れていない場合 コマンドを使用すると、ユーザーとグループのガイドを確認できます。

    始める前に

    1. 「はじめに」と「サーバーの保護」ガイドに準拠し、Linodeのホスト名が設定されていることを確認してください。

      ホスト名を確認するには、次のコマンドを実行します。

      hostname
      hostname -f
      

      最初のコマンドは短いホスト名を表示し、2番目のコマンドは完全修飾ドメイン名(FQDN)を表示する必要があります。

    2. システムを更新します:

      sudo apt-get update
      sudo apt-get upgrade
      

    MySQLのインストール

    sudo apt-get install mysql-server
    
    注 mysql-serverパッケージは、Debianの最新バージョンでは利用できない場合があります。そのような場合は、sudo apt-get install default-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クライアントは端末を介して使用されます。

    ルートログイン

    1. rootユーザーとしてMySQLにログインするには:

      mysql -u root -p
      
    2. プロンプトが表示されたら、rootパスワードを入力します。

      次に、以下に示すように、ウェルカムヘッダーとMySQLプロンプトが表示されます。

      mysql>
      
    3. 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ユーザーとデータベースを作成する

    1. 以下の例では、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';
      
    2. 次に、MySQLを終了します。

      exit
      

    サンプルテーブルを作成する

    1. testuserとして再度ログインします 。

      mysql -u testuser -p
      
    2. customersというサンプルテーブルを作成します 。これにより、タイプがINTの顧客IDフィールドを持つテーブルが作成されます。 整数(新しいレコードの場合は自動インクリメント、主キーとして使用)、および顧客の名前を格納するための2つのフィールド。

      use testdb;
      create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
      
    3. 次に、MySQLを終了します。

      exit
      

    MySQLルートパスワードをリセット

    ルートMySQLパスワードを忘れた場合は、リセットできます。

    1. 現在のMySQLサーバーインスタンスを停止します。

      sudo systemctl stop mysql.service
      
    2. dpkgを使用して、MySQLが最初のインストールで実行する構成プロセスを再実行します。再度、rootパスワードを設定するように求められます。

      sudo dpkg-reconfigure mysql-server-5.5
      

    dpkg MySQLが自動的に再起動し、mysql -u root -pを使用して再度ログインできるようになります。 。

    MySQLの調整

    MySQL Tunerは、実行中のMySQLインスタンスに接続し、ワークロードに基づいた構成の推奨事項を提供するPerlスクリプトです。理想的には、MySQLインスタンスは、チューナーを実行する前に少なくとも24時間動作している必要があります。インスタンスの実行時間が長いほど、MySQLTunerからのアドバイスが向上します。

    1. UbuntuのリポジトリからMySQLTunerをインストールします。

      sudo apt-get install mysqltuner
      
    2. 実行するには:

      mysqltuner
      

      MySQLrootユーザーの名前とパスワードの入力を求められます。出力には、一般的な推奨事項と調整する変数の2つの関心領域が表示されます。

    MySQL Tunerは、MySQLサーバーを最適化するための優れた出発点ですが、LinodeでMySQLを利用するアプリケーションに合わせた構成について追加の調査を行うのが賢明です。

    詳細情報

    このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。

    • MySQL5.5リファレンスマニュアル
    • PHPMySQLマニュアル
    • DBD::mysqlのPerlDBIの例
    • MySQLdbユーザーガイド
    • MySQLチューナーチュートリアル

    1. MySQLのパフォーマンス:MySQL/MariaDBインデックス

    2. 削除後にSQLServerで自動インクリメントをリセットする

    3. MySQL定義者の問題をトラブルシューティングする方法

    4. sqlAlchemyを使用したスト​​アドプロシージャ