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

GentooでのMySQLリレーショナルデータベースの使用

    MySQLは、無数のWebおよびサーバーアプリケーションのバックエンドとして使用されるリレーショナルデータベース管理システム(RDBMS)です。もともと1995年にリリースされましたが、データベースサーバーとして開発者に人気があります。

    このガイドを開始する前に、コンピューティングインスタンスのセットアップとセキュリティ保護で概説されている手順を完了していることを確認してください。さらに、rootユーザーとしてシステムにログインしていることを確認してください。

    MySQLのインストール

    次のコマンドを発行して、パッケージリポジトリが最新であることを確認します。

    emerge --sync
    

    次のコマンドは、すべてのパッケージとそのシステムへの依存関係を更新します。このコマンドの実行に不安がある場合は、コマンドをスキップするか、emerge --update worldを使用してください。 :

    emerge --update --deep world
    

    次のコマンドを発行してMySQLをインストールします。

    emerge dev-db/mysql
    

    このプロセスが完了したら、MySQLが使用するデータベースもインストールする必要があります。次のコマンドを発行します:

    mysql_install_db
    

    これで、MySQLサーバーを初めて起動する準備が整いました:

    /etc/init.d/mysql start
    

    mysql_secure_installationを実行する必要があります ルートパスワードを設定し、MySQLインスタンスを保護します。次のコマンドを発行します:

    mysql_secure_installation
    

    システムの起動時にMySQLを実行する場合は、次のコマンドを発行します。

    rc-update add mysql default
    

    MySQLの構成

    デフォルトでは、MySQLはローカルホストにバインドします。 MySQLがパブリックIPでリッスンするようにしたい場合は、bind-addressを変更できます。 /etc/mysql/my.cnfの値 LinodeのIPアドレスを反映します。パブリックIPでMySQLへの無制限のアクセスを許可することはお勧めできません。ファイアウォールルールを実装して、特定のIPアドレスからのトラフィックのみを許可することを検討することをお勧めします。

    上記の提案はすべての環境に適しているとは限らないため、アプリケーションで別の設定が必要ないことを確認してください。 MySQLの構成に関するより詳細なドキュメントについては、このガイドの「詳細情報」セクションにある追加のリソースを参照してください。

    /etc/mysql/my.cnfの設定を変更するときはいつでも 、MySQLサーバーを再起動する必要があります。次のコマンドを発行します:

    /etc/init.d/mysql restart
    

    MySQLの使用

    MySQLとのほとんどの対話は、mysqlを介して行われます。 コマンドラインユーティリティ。次のコマンドを発行してMySQLと対話します。

    mysql -u root -p
    

    プロンプトが表示されたら、mysql_secure_installation中に作成したパスワードを入力します 処理する。これを行うと、MySQLプロンプトが表示されます:

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9
    Server version: 5.1.51-log Gentoo Linux mysql-5.1.51
    
    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    

    後日MySQLrootパスワードを忘れた場合は、次の一連のコマンドでリセットできます。

    /etc/init.d/mysql stop
    mysqld_safe --skip-grant-tables --skip-networking &
    mysqladmin -u root
    

    ログインしたら、MySQLプロンプトで次のコマンドを入力します。

    USE mysql;
    UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
    FLUSH PRIVILEGES;
    exit
    

    使用可能なコマンドのリストを表示するには(ない SQL構文)、\hを発行します MySQLプロンプトで:

    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.
    

    データベースを作成して、それにユーザーを割り当てましょう。 MySQLプロンプトで次のコマンドを発行します。

    CREATE DATABASE testdb;
    
    CREATE USER 'testuser' IDENTIFIED BY 's8723hk2';
    
    GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
    
    exit
    

    それでは、testuserとしてMySQLクライアントに再度ログインしましょう。 「customers」というサンプルテーブルを作成します。次のコマンドを発行します:

    mysql -u testuser -p
    
    USE testdb;
    
    CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    

    これにより、整数のINTタイプの顧客IDフィールド(新しいレコードの場合は自動インクリメントされ、主キーとして使用されます)と、顧客の名前を格納するための2つのフィールドを持つテーブルが作成されます。もちろん、これよりもはるかに多くの情報を顧客に保存したいと思うかもしれませんが、それでも一般的なケースの良い例です。

    MySQLのチューニング

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

    MySQL Tunerをインストールするには、次のコマンドを発行します。

    emerge dev-db/mysqltuner
    

    MySQL Tunerを実行するには、次のように入力します。

    mysqltuner
    

    このツールは構成の提案を提供するように設計されており、優れた出発点であることに注意してください。 MySQLを利用するアプリケーションに基づいて構成を調整するための追加の調査を実行するのが賢明です。

    詳細情報

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

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

    1. SQL Server全文検索(FTS)でストップリストの使用をマスターする

    2. R12および11iでOTAを設定する方法

    3. 長時間実行されるクエリについてOracleデータベースをチェックする方法

    4. パフォーマンスが低下し始める前に、MySQLデータベースはどのくらい大きくなることができますか