MySQL シリーズ 3 基礎

MySQL シリーズ 3 基礎

チュートリアルシリーズ

MySQL シリーズ: MySQL リレーショナル データベースの基本概念
MySQLシリーズのMariaDBサーバーのインストール
MySQL シリーズ II マルチインスタンス構成
MySQL シリーズ 4 SQL 構文
MySQLシリーズ5つのビュー、ストアド関数、ストアドプロシージャ、トリガー
MySQL シリーズ 6 のユーザーと認証
MySQL シリーズ 7 MySQL ストレージ エンジン
MySQL シリーズ 8 MySQL サーバー変数
MySQL シリーズ 9 MySQL クエリ キャッシュとインデックス
MySQL シリーズ 10 同時実行制御を実装するための MySQL トランザクション分離
MySQL シリーズ 11 ログ
MySQL シリーズ 12 バックアップとリカバリ
MySQL シリーズ 13 MySQL レプリケーション
MySQL シリーズ 14 MySQL 高可用性実装
MySQLシリーズ15 MySQL共通設定とパフォーマンスストレステスト

1. MySQL の紹介

MySQL はもともとオープンソースのリレーショナル データベース管理システムでした。その最初の開発者はスウェーデンの会社 MySQL AB でしたが、2008 年に Sun に買収されました。 2009 年に Oracle が Sun を買収し、MySQL は Oracle 製品になりました。

しかし、Oracle に買収された後、Oracle は MySQL の商用バージョンの価格を大幅に引き上げ、別のフリーソフトウェア プロジェクトである OpenSolaris の開発をサポートしなくなりました。その結果、フリーソフトウェア コミュニティは、Oracle が MySQL Community Edition (MySQL の唯一の無料バージョン) のサポートを継続するかどうかを懸念していました。MySQL の創設者である Michael Widenius は、MySQL をベースにしたブランチ プロジェクト MariaDB を設立しました。もともと MySQL を使用していた一部のオープンソース ソフトウェアは、徐々に MariaDB や他のデータベースに移行しています。

2. MySQLの開発履歴

モンティ・マイケル・ウィデニウス

  • 1996年: MySQL 1.0がリリースされました。最初はSolaris用、後にLinux用になりました。
  • 1999年:モンティはスウェーデンでMySQL ABを設立した。
  • 2003年: MySQL 5.0がリリースされ、ビュー、ストアドプロシージャ、その他の機能が追加された。
  • 2008年:サンに買収
  • 2009年:オラクルがサンを買収
  • 2009年:モンティがMariaDBを設立

バージョンの進化:

  • MySQL: 5.1 --> 5.5 --> 5.6 --> 5.7
  • MariaDB: 5.5 --> 10.0 --> 10.1 --> 10.2 --> 10.3

3. MariaDBの基本的な使い方

MariaDB は、API やコマンド ラインを含めて MySQL と完全に互換性を持たせ、MySQL の簡単な代替品となることを目指しています。ストレージ エンジンに関しては、バージョン 10.0.9 以降、MySQL の InnoDB の代わりに XtraDB (コード名 Aria) が使用されます。

​ MySQL は、MySQL の創設者である Michael Widenius によって開発されました。彼は以前、自分の会社である MySQL AB を 10 億ドルで SUN に売却していました。その後、SUN が Oracle に買収されたため、MySQL の所有権も Oracle の手に渡りました。 MariaDB は Michael Widenius 氏の娘 Maria にちなんで名付けられました。

​ プラグイン ストレージ エンジン: 「テーブル型」とも呼ばれるストレージ マネージャーには複数の実装バージョンがあり、機能や特徴が若干異なる場合があります。ユーザーは必要に応じて柔軟に選択できます。MySQL5.5.5 以降、innoDB エンジンは MYSQL のデフォルト エンジンです。 MyISAM ==> Aria、InnoDB ==> XtraDB

1. 基本的なインストールと設定

インストール: yum install mariadb-server

メイン設定ファイル: 上から下にチェックします。重複する設定パラメータがある場合は、次の設定ファイルのパラメータが有効になり、検索されたパラメータが上書きされます。

/etc/my.cnf
phpMySQL の mysql.cnf ファイル
sysconfig のファイル
/usr/local/etc/my.cnf
〜/.my.cnf

デフォルト設定を表示する: /usr/libexec/mysqld --print-defaults

デフォルトのデータベースライブラリファイルの保存ディレクトリは、/var/lib/mysql/ です。

ソケットファイル: /var/lib/mysql/mysql.sock

PID ファイル: /var/run/mariadb/mariadb.pid

ログファイル: /var/log/mariadb/mariadb.log

サービスを開始します: # systemctl start mariadb.service

2. クライアントコマンド: mysql

オプション:

-u rootはユーザーを指定します
-p パスワードはパスワードを指定します
-h ホストは接続ホストを指定します
-A 補完を無効にする
-P ポートはポートを指定します。デフォルトは 3306 です。
-S ソケットファイルパスのデフォルト: /var/lib/mysql/mysql.sock
-D databasename はデフォルトのデータベースを指定します
-C 圧縮を有効にする
-e SQL_CMDは実行後に終了します
-V バージョンを表示
--print-defaults デフォルト設定を表示

バッチモード

mysql < /path/somefile.sql 実行のためにSQLスクリプトをデータベースにインポートします

インタラクティブモード

クライアントコマンド

  • \d|delimiter 文の終了文字を設定する
  • \c|clear 文を早く終了する
  • \r|connect データベースに再接続します
  • \g ステートメントを直接サーバーに送信して実行します
  • \G ステートメントを直接サーバーに送信して実行します。結果は垂直に表示されます。
  • .|source スクリプトファイルを読み取り、データベースを作成します
  • ! COMMANDはシェルコマンドを実行します
  • \W 文の実行後に警告メッセージを表示する
  • \w ステートメントの実行後に警告メッセージは表示されません
  • \s 現在のシステムステータスを取得する
  • database_nameを使用して操作の対象となるデータベースを指定します
  • prompt \u@[\D] \r:\m:\s-> プロンプトを変更します。永続的に変更する必要がある場合は、my.cnf の [mysql] の下に prompt="(\u@\h) [\d]> を追加します。
  • \q 終了

サーバー コマンド: コマンドの後にコマンド ターミネータを追加する必要があります。デフォルトのターミネータはセミコロン ";" です。

  • help キーワード サーバーコマンドのヘルプを取得する
  • select version(); データベースのバージョンを表示する
  • 変数を表示; 現在のデータベース作業の環境変数を表示します

3. その他のクライアントツール

  • mysqldump: mysqlプロトコルに基づいてmysqldにクエリ要求を送信し、取得したすべてのデータを挿入などの書き込み操作ステートメントに変換してテキストファイルに保存するバックアップツール
  • mysqladmin: mysql プロトコルに基づいて mysqld を管理する
  • mysqlimport: データインポートツール
  • myisamchk: MyISAM ライブラリをチェックする
  • myisampack: MyISAM テーブルをパックする
  • mysqld_safe: サービスバイナリ
  • mysqld_multi: 複数インスタンス作成ツール

4. セキュリティ強化スクリプト mysql_secure_installation

このスクリプトは基本的なセキュリティ強化に役立ちます

[root@centos7 mysql]# mysql_secure_installation
ルートの現在のパスワードを入力してください (なしの場合は Enter): #パスワードが空の場合は直接 Enter を押してください ルートパスワードを設定しますか? [Y/n] Y #ルートパスワードを設定します 新しいパスワード: ******
新しいパスワードを再入力してください: ******
匿名ユーザーを削除しますか? [Y/n] Y #匿名アカウントを削除します リモートからの root ログインを許可しませんか? [Y/n] n #リモート接続を無効にします テスト データベースとそれへのアクセスを削除しますか? [Y/n] Y #テスト ライブラリを削除します 権限テーブルを今すぐ再読み込みしますか? [Y/n] Y #認証テーブルを再読み込みして設定を有効にします [root@centos7 mysql]# mysql -uroot -p'your_password' #データベース コマンドに接続します

MySQL シリーズ第 3 部の記事はこれで終了です。MySQL の基礎についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MariaDB (MySQL) の作成、削除、選択、およびデータ型の使用の詳細
  • MySQLの基本的な使い方からMariaDBのインストール方法まで詳しく解説
  • CentOS 7 の mysql5.5 のインストールと mariadb のインストールに使用するコマンド

<<:  サイト全体を灰色にするCSSコードのまとめ

>>:  フォームにファイルをアップロードした後にアクションを保存するよう促す理由と解決策

推薦する

HTML フォームタグチュートリアル (4):

ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...

GitHub のサードパーティ認証方式を Vue で実装する例

目次OAuth アプリの作成コードを取得するaccess_tokenを取得するユーザー情報を取得する...

mysql 5.6.23 winx64.zip インストール詳細チュートリアル

WindowsにMySQLの圧縮バージョンをインストールする方法の詳細については、以下を参照してくだ...

Node.js のフロントエンドとバックエンドのインタラクションによるユーザーログインの実装の実践

目次1. プロジェクト要件次にコーディングを始める1. フロントエンドページを作成する(CSSスタイ...

Docker 接続 MongoDB 実装プロセスとコード例

コンテナが起動した後まず管理者にログインして新しいユーザーを作成してください $ docker ex...

サブクエリ最適化における MySQL 選択の実装

以下のデモはMySQLバージョン5.7.27に基づいています。 1. MySQLサブクエリ最適化戦略...

require/import キーワードを使用して v-for ループでローカル画像をインポートするいくつかの方法

目次問題の説明方法 1 (バックエンドが画像 URL を返す)方法 2 (フロントエンドで requ...

CentOS 7 で PHP 5.4 を 5.6 にアップグレードする方法の簡単な分析

1.ターミナルに入ったらPHPのバージョンを確認するphp -v出力は次のようになります。 PHP ...

CSS ボックスモデル内のパディングと略語の詳細な説明

上図のように、パディング値は時計回り(右上、右下)の複合属性であり、パディングの内側の余白がボックス...

Tencent Cloud Server Tomcat ポートにアクセスできない場合の解決策

最近、Tencent Cloudを使用してサーバーを設定しました。使用中に、tomcatポートにアク...

Navicat の MySQL へのリモート接続の実装手順の分析

序文皆さんはリモート サーバーで開発を行っており、MySQL の使用率はかなり高いはずです。コマンド...

NginxはLua+Redisを使用してIPを動的にブロックします

1. 背景日常的なウェブサイトのメンテナンスでは、このような要件に頻繁に遭遇します。特定のクローラー...

CSSはフロートをシミュレートして、画像の左右を囲む中央テキストの効果を実現します。

画像の周囲にテキストを折り返すとは何ですか?これは次の図の効果です。 エフェクトのCSSコードはここ...

Linux 環境に nginx をインストールするチュートリアル

目次1. 必要な環境をインストールする //gccをインストールする yum で gcc-c++ を...

Vueは下部のポップアップウィンドウで複数選択を実装します

この記事の例では、下部のポップアップウィンドウで複数選択を実装するためのVueの具体的なコードを共有...