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

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

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

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

    始める前に

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

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

      hostname
      hostname -f
      

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

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

      sudo yum update
      

    MySQLのインストールと起動

    1. MySQLをインストールし、開始するランレベルを指定します:

      sudo yum install mysql-server
      sudo /sbin/chkconfig --levels 235 mysqld on
      
    2. 次に、MySQLサーバーを起動します。

      sudo service mysqld start
      

      MySQLはデフォルトでローカルホスト(127.0.0.1)にバインドします。 SSHを使用したデータベースへの接続については、MySQLリモートアクセスガイドを参照してください。

    注 パブリックIPでMySQLへの無制限のアクセスを許可することはお勧めしませんが、bind-addressを変更することで、リッスンするアドレスを変更できます。 /etc/my.cnfのパラメータ 。 MySQLをパブリックIPにバインドする場合は、特定のIPアドレスからの接続のみを許可するファイアウォールルールを実装する必要があります。

    ハードMySQLサーバー

    1. mysql_secure_installationを実行します デフォルトのMySQLインストールにおけるいくつかのセキュリティ問題に対処するためのスクリプト。

       sudo mysql_secure_installation
      

    MySQLのrootパスワードを変更するか、匿名ユーザーアカウントを削除するか、ローカルホストの外部でrootログインを無効にするか、テストデータベースを削除するかを選択できます。これらのオプションに「はい」と答えることをお勧めします。スクリプトの詳細については、MySQLリファレンスマニュアルを参照してください。

    MySQLの使用

    MySQLと対話するための標準ツールは、mysqlです。 mysql-serverとともにインストールするクライアント パッケージ。 MySQLクライアントは端末を介して使用されます。

    ルートログイン

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

      mysql -u root -p
      
    2. プロンプトが表示されたら、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>
      
    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' identified by 'password';
      

      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 /etc/init.d/mysqld stop
       sudo mysqld_safe --skip-grant-tables &
      
    2. MySQLルートアカウントを使用してMySQLサーバーに再接続します。

       mysql -u root
      
    3. 次のコマンドを使用して、rootのパスワードをリセットします。 passwordを置き換えます 強力なパスワードを使用します。

       use mysql;
       update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
       flush privileges;
       exit
      
    4. 次に、MySQLを再起動します。

       sudo service mysqld restart
      

    これで、mysql -u root -pを使用して再度ログインできるようになります。 。

    MySQLの調整

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

    1. MySQLチューナーをホームディレクトリにダウンロードします。

       wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
      
    2. 実行するには:

       perl ./mysqltuner.pl
      

      出力には、一般的な推奨事項と調整する変数の2つの関心領域が表示されます。

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

    詳細情報

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

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

    1. IN条件がSQLの=より遅いのはなぜですか?

    2. SQL ServerでSAアカウントを無効にする(T-SQLの例)

    3. 2020年の5つの珍しいMicrosoftAccessのヒント

    4. データベースの再編成–なぜそれらが重要なのか