- 投稿日:2021-10-31T23:27:49+09:00
VirtualBox+CentOSでApache・PHP・MySQLをインストール
何をしているか Mac上でVirtualBoxの仮想環境にCentOSをインストールが完了している状態からスタートしています。 Apache・PHP・MySQLをインストールするところまでをおこないます。 環境情報 ホストOS:MacOS Big Sur 11.5.2 ゲストOS:CentOS7-x86_64 VirtualBox 6.1.28 Apache 2.4.6 PHP 7.4 MySQL 5.4 apacheのインストール インストール 実行コマンド yum install -y httpd complete!と表示されれば完了。 apacheの起動 実行コマンド systemctl start httpd.service 起動確認 実行コマンド systemctl status httpd Active: active(running)と表示されていればOK 自動的に起動するように設定したい場合 実行コマンド systemctl enable httpd.service サーバにアクセスするためFirewallを解放する 実行コマンド firewall-cmd --add-service=http --permanent ここまでで一旦、VirtualBoxで立ち上げたサーバをシャットダウンします。 実行コマンド shutdown -h now サーバにアクセスするためのネットワーク設定 「localhost:8889」と入力し、仮想環境で立ち上げたサーバにアクセスできるようにしたいため、VirtualBoxの仮想環境の設定を変更します。 対象の仮想環境を選択し、「設定」→「ネットワーク」でネットワークの設定画面を開き、割り当てを「NAT」にします。 「高度」をクリックすると、下に設定項目が表示されるので「ポートフォワーディング」をクリックします。 下図のように設定します。 ※sshの穴も開けておくと、ホストOSからゲストOSのサーバにssh接続できるので便利です。 任意のブラウザを開き「localhost:8889」と入力し、仮想環境に構築したサーバにアクセスします。 下図が表示されればアクセス成功です。 ホストOSからsshで接続する 先程のポートフォワーディングで、sshの穴を開けていれば、ホストOSからssh接続が可能です。 実行コマンド ssh -p 2021 root@localhost VirtualBoxで立ち上げた仮想環境は、拡張機能を追加しないと、ウィンドウサイズが固定で、コピー&ペーストもできません。 sshで接続すると作業が捗るためおすすめです。 PHPのインストール Remi repositoryをインストール 今回、PHPは7.4をインストールしたいのですが、CentOS7で「yum install php」とするとphp5.4.16がインストールされてしまいます。 Remiという方が作成したレポジトリを使うことで、PHP7系をインストール可能です。 下記コマンドを実行し、Remi repositoryをインストールします。 実行コマンド yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm PHP7.4をインストール Remi repositoryがインストールされていれば、そのレポジトリを使ってphp7.4がインストール可能です。 実行コマンド yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql インストールを確認 実行コマンド php -v PHP 7.4.25 (cli) (built: Oct 19 2021 15:18:10) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies PHP 7.4.25がインストールされていることを確認。 phpの動作確認を行う まずはapacheを再起動します。 :実行コマンド systemctl restart httpd phpのドキュメントルートはCentOS7では「/var/www/html/」です。 ドキュメントルートにtest.phpを作成します。 実行コマンド vi /var/www/html/test.php phpinfoを表示するよう下記コードを記入して保存 test.php <?php phpinfo(); ブラウザを開いて「localhost:8889/test.php」にアクセス。 PHP Version 7.4.25が表示されれば、PHPの動作確認はOK。 MySQLのインストール mariaDBを削除 デフォルトでmariaDBがインストールされています。 競合を避けるためmariaDBを削除します。 実行コマンド yum remove mariadb-libs インストール CentOS7を使用しているため「el7」を選択します。 実行コマンド yum install -y http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm 実行コマンド yum install -y mysql-community-server 起動 実行コマンド systemctl start mysqld 自動起動の設定 実行コマンド systemctl enable mysqld 以上で、Apache+PHP+MySQLのインストールは完了です。 参考にさせていただいたサイト https://qiita.com/karaimonoOitii/items/9ccbec9685b44d589972 https://www.hiroski.com/2020/04/202004-php74-install.html https://manabiact.com/virtualbox-lamp-setup/
- 投稿日:2021-10-31T21:02:12+09:00
Rails+React+MySQL+nginx+puma on Docker
はじめまして。 初投稿です。 よろしくお願いします。 概要 Docker 自己紹介 初投稿なので軽く自己紹介します。 現在横浜の大学に通うB3で絶賛就活中です。 Qiitaの方々の記事に大変お世話になっているのでぜひ自分も書いて誰かの役に立てればと思い書いてみました。 誰かのtipsになれば幸いです。 承認欲求強めです。いいね、ストック、スター、フォローしてくれると飛び跳ねるくらい嬉しいです。 よろしくお願いします。 すぐはじめたい方へ 完成版 github clone後setup.shを実行すればコンテナが立ち上がります。 構成 バック version Ruby 2.6.2 Rails(API モード) 6.1.4 nginx 1.20.1 MySQL 5.7 フロント version Node.js 12.6.1 React 17.0.2 nginx 1.20.1 投稿時テーブルを上から持ってきたままになっておりバージョンの編集が行われておりませんでしたので編集を行いました。 ディレクトリ . ├── api │ ├── nginx │ │ ├── Dockerfile │ │ └── default.conf │ └── server │ ├── Dockerfile │ ├── Gemfile │ ├── Gemfile.lock │ ├── entrypoint.sh │ └── run.sh ├── frontend │ ├── Dockerfile │ └── run.sh │ ├── front │ │ ├ │ ├── nginx │ │ ├── Dockerfile │ │ └── default.conf ├── mysql │ ├── Dockerfile │ └── my.cnf ├── docker-compose.yml └── setup.sh ポートは以下のようです。 rails 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp api-nginx 0.0.0.0:8080->80/tcp, :::8080->80/tcp react 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp front-nginx 0.0.0.0:80->80/tcp, :::80->80/tcp db 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp ReactとRailsのデフォルトポートが3000でかぶるので、今回はReactのポートを8000にしました。 このポートって慣習とかルールってあるんですかね? qiitaの記事とか見ると色んな設定ですけど、分かる方がいらっしゃればぜひ教えてください?♂️ バック まずはバックを構築していきます。はじめにRailsのコンテナ作って、MySQLを作ってからnginx作ります。 Rails Gemfile Gemfile source 'https://rubygems.org' gem 'rails', '~> 6.1.4' Dockerfile Dockerfile FROM ruby:2.6.2 RUN apt-get update -qq && \ apt-get install -y build-essential libpq-dev nodejs vim RUN mkdir /code WORKDIR /code COPY Gemfile /code/Gemfile COPY Gemfile.lock /code/Gemfile.lock RUN bundle install COPY . /code COPY entrypoint.sh /usr/bin/ ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 CMD ["bundle", "exec", "puma", "-C", "/code/config/puma.rb"] よく見る構成のDockerfileだと思います。 Dockerfileの最後のコマンドは、今回pumaを使用するのでこちらのような形式となっています。 -Cオプションの後ろで実行するファイルを指定します。 今回はルートディレクトリ下の/codeに諸々のアプリケーションファイルを置くので、このような指定としています。 Dockerfile内apt-get installの最後のvimはお好みで入っているだけなのでなくても動きます。 entrypoint.sh entrypoint.sh #!/bin/bash set -e rm -f /code/tmp/pids/server.pid exec "$@" 実行 run.sh #!/bin/bash cd /code rm -f /code/tmp/pids.server.pid bundle exec puma -C /code/config/puma.rb MySQL .env MYSQL_DATABASE=server_dev MYSQL_USER=docker MYSQL_ROOT_PASSWORD=DockerMysql1.0! MYSQL_PASSWORD=DockerMysql1.0! MySQLの環境変数設定です。 今回はユーザー名 docker、パスワード DockerMysql1.0!としてMySQLに接続します。 Dockerfile Dockerfile FROM mysql:5.7 EXPOSE 3306 COPY ./my.cnf /etc/mysql/conf.d/my.cnf CMD ["mysqld"] 特に注意する点はありません。 MySQLイメージを持ってきて、3306ポートを開け、confファイルをコンテナ内にコピーし、mysqldで起動します。 my.cnf [mysqld] explicit_defaults_for_timestamp = 1 character-set-server = utf8mb4 collation-server = utf8mb4_bin [mysql] default-character-set = utf8mb4 [client] default-character-set = utf8mb4 データベースの文字設定を行っています。 nginx(Rails側) Dockerfile Dockerfile FROM nginx:1.20.1 RUN rm /etc/nginx/conf.d/default.conf COPY default.conf /etc/nginx/conf.d CMD ["/usr/sbin/nginx", "-g", "daemon off;", "-c", "/etc/nginx/conf.d/default.conf"] Rails側のnginxコンテナです。 nginxイメージを持ってきて、/etc/nginx/conf.d下にあるデフォルトのconfファイルを削除し、これから作成するconfファイルを置きます。 その後nginxを起動します。 default.cnf default.cnf events { worker_connections 1024; } http { upstream rails { server qiita-rails:3000; } server { listen 80; server_name localhost; root /code/public; location / { try_files $uri @app; } location @app { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://rails; } } } nginxのconfファイルです。 今回はバックエンドでnginxコンテナに来たリクエストをRailsコンテナに流すので、こちらの設定を行います。 upstreem内でrailsコンテナ(これからdocker-compose.yml内で設定するサービス名qiita-railsの3000番ポートサーバー)を設定し、locationのproxy_passで流します。 docker-compose.yml docker-compose.yml version: "3.4" services: qiita-db: build: ./mysql/ container_name: qiita_db environment: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - db-data:/var/log/mysql healthcheck: test: ["CMD-SHELL", "mysqladmin ping --host=127.0.0.1 --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} --port=3306"] ports: - "3306:3306" qiita-rails: build: ./api/server/ container_name: wt4u_api_rails command: ["./run.sh"] container_name: qiita_rails env_file: - ./api/server/.env volumes: - ./api/server/:/code/ - public:/code/public/ environment: TZ: Asia/Tokyo RAILS_ENV: development depends_on: qiita-db: condition: service_healthy ports: - "3000:3000" healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:3000 || exit 1"] qiita-api-nginx: build: ./api/nginx/ container_name: wt4u_api_nginx volumes: - public:/code/public/ ports: - "8080:80" depends_on: qiita-rails: condition: service_healthy volumes: db-data: public: バック+DBまでのdocker-composeです。 特に変わった点はないですが、注意点としてqiita-db/qiita-rails両サービスにヘルスチェックを設定します。 depends_onで設定できるのはコンテナの起動順のみですので、コンテナ起動後アプリケーションが起動してから新たなコンテナを起動するように設定します。 起動順はdb→rails→nginxです。 DBの方はなくてもいけましたが、Railsのサービスの方はその後のnginxのほうが早く立ち上がり、リクエストを流す先がないエラーとなってしまうことを防ぐために設定しています。 内容としては、DBの方はmysqladminコマンドで接続できるかどうか、Railsの方はcurlコマンドでレスポンスが帰ってくるかどうかです。 詳細はDockerのドキュメントに書かれているのでこちらを参照してください。 コマンドだけでなく試行回数やインターバルなども設定できます。 またDBのデータを永続化するためvolumeを設定します。 そしてローカルの編集をコンテナへ反映させるためapi/serverをマウントします。これでコンテナ内でbundle installしたものなどが永続化できます。 さらにRailsコンテナとnginxコンテナでpublicディレクトリを共有するため同様にvolumeを作成します。 フロント 続いてフロント側のコンテナ達を作成します。 React Dockerfile FROM node:12.16.1 RUN apt-get update && \ apt-get install -y vim COPY run.sh / RUN mkdir /code WORKDIR /code EXPOSE 8000 CMD ["PORT=8000", "yarn", "start"] これもよくあるReactのDockerfileです。 注意点として、今回React側のポートを8000にするので、yarn startコマンドでポートを指定します。 run.sh #!/bin/bash cd /code PORT=8000 yarn start 上と同じくです。 nginx(React側) Dockerfile FROM nginx:1.20.1 RUN rm /etc/nginx/conf.d/default.conf COPY default.conf /etc/nginx/conf.d CMD ["/usr/sbin/nginx", "-g", "daemon off;", "-c", "/etc/nginx/conf.d/default.conf"] React側のnginxのDockerfileはRails側と同じです。 default.cnf events { worker_connections 1024; } http { upstream react { server qiita-react:8000; } server { listen 80; location / { proxy_pass http://react; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; } location /sockjs-node { proxy_pass http://react; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } } confもRails側と同じです。今回Reactのコンテナ名をqiita-reactとするのでupstreamで設定します。 docker-compose.yml docker-compose.yml version: "3.4" services: qiita-db: build: ./mysql/ container_name: qiita_db environment: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - db-data:/var/log/mysql healthcheck: test: ["CMD-SHELL", "mysqladmin ping --host=127.0.0.1 --user=${MYSQL_USER} --password=${MYSQL_PASSWORD} --port=3306"] ports: - "3306:3306" qiita-rails: build: ./api/server/ container_name: wt4u_api_rails command: ["./run.sh"] container_name: qiita_rails env_file: - ./api/server/.env volumes: - ./api/server/:/code/ - public:/code/public/ environment: TZ: Asia/Tokyo RAILS_ENV: development depends_on: qiita-db: condition: service_healthy ports: - "3000:3000" healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:3000 || exit 1"] qiita-api-nginx: build: ./api/nginx/ container_name: wt4u_api_nginx volumes: - public:/code/public/ ports: - "8080:80" depends_on: qiita-rails: condition: service_healthy qiita-react: build: ./frontend/ container_name: qiita_react volumes: - ./frontend/front/:/code/ ports: - "8000:8000" command: ["/run.sh"] healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:8000 || exit 1"] qiita-front-nginx: build: ./frontend/nginx/ container_name: qiita_front_nginx ports: - "80:80" depends_on: qiita-react: condition: service_healthy volumes: db-data: public: docker-composeの最終的な構成です。 フロント側もnginxを立てるので同様にヘルスチェックを行い起動を確認後nginxのコンテナを起動します。 RailsもReactもコンテナ内の/codeディレクトリにコードを一式置きます。 volumesの設定でマウントしているので、コンテナ内のbundle(yarn) installやローカルでの編集が同期されます。 立ち上げ Build $ docker-compose build Rails $ docker-compose run qiita-rails rails new . --api -d mysql --force --path vendor/bundle Railsのアプリケーションを新規作成します。 今回はRailsをAPIモードで使用し、データベースにMySQLを使用するのでオプションで指定します。 またbundle installしたgem達を永続化したいので、/code/vendor/bundleにインストールしvolumeの対象となるようにするため--pathオプションで指定します。 Rails DB接続情報 database.yml default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: <%= ENV.fetch("MYSQL_USER") %> password: <%= ENV.fetch("MYSQL_PASSWORD") %> host: qiita-db development: <<: *default database: <%= ENV.fetch("MYSQL_DATABASE") %> RailsのDB接続情報を設定します。 hostにDBのコンテナ名を指定します。 React $ docker-compose run qiita-react npx create-react-app . npx create-react-appでReactアプリケーションを作成します。 起動 $ sudo chmod -R a=rx,u+wx . $ docker-compose up --build dockerがsudo権限で実行されている場合、コンテナ内で作成されvolumeでローカルにマウントされたRails、Reactアプリケーションファイルには実行権限がありません(でした)。 ユーザーに実行権限を設定するため1つ目のコマンドを実行します。 最後にdocker-compose up --buildを実行することですべてのコンテナたちが立ち上がります。 localhostの3000、8080ポートでRailsのトップが、8000、80ポートでReactのトップページが表示されます。 最後に 拙い文章でしたが最後までお読みいただきありがとうございます。 修正/加筆依頼/アドバイスは大歓迎です! qiitaでもissueでもぜひお願いします。 ちょこちょこ記事書きたいと思っているのでぜひよろしくお願いします。
- 投稿日:2021-10-31T16:24:29+09:00
M1 mac + laradockのapache2とMySQLエラー回避(おまけXdebug3設定)
M1 macでのlaradockの問題点 仕事でlaravelを使用しており、ローカル開発環境としてlaradockをIntel macで使用していましたが、最近M1 macに移行したところ、laradockでいくつか問題点があったので回避策を調べました。 問題1 apache2が起動しない まず、M1ではapache2のコンテナが起動しません。 方法 /apache2/Dockerfileを修正 // 1行目を修正 FROM --platform=linux/x86_64 webdevops/apache:ubuntu-18.04 // 最後の行に下記を追加 RUN wget -O "/usr/local/bin/go-replace" "https://github.com/webdevops/goreplace/releases/download/1.1.2/gr-arm64-linux" \ && chmod +x "/usr/local/bin/go-replace" \ && "/usr/local/bin/go-replace" --version ちなみにnginxはM1でも普通に動きます 問題2 MySQLが起動しない 同様にMySQLも起動しません。 ネットで調べるといろいろ情報がありますが、自分の場合は下記の変更だけで起動しました。 方法 /mysql/Dockerfileを修正 // 2行目を修正 FROM --platform=linux/x86_64 mysql:${MYSQL_VERSION} これで起動しない場合は、.envのDATA_PATH_HOSTで指定しているディレクトリを削除してください。 おまけ Xdebug3の設定 PHPのバージョンによっては(PHP8.0など)Xdebugのバージョン3がインストールされますが、設定のパラメータ名がバージョン2から変わっており、うまくPhpStormでステップ実行ができませんでした。 方法 /php-fpm/xdebug.iniと/workspace/xdebug.iniの最後の行に下記を追加 xdebug.client_host="host.docker.internal" xdebug.discover_client_host=0 xdebug.client_port=9000 xdebug.mode=debug xdebug.start_with_request=yes xdebug.output_dir="~/xdebug/phpstorm/tmp/profiling" .envのWORKSPACE_INSTALL_XDEBUGとPHP_FPM_INSTALL_XDEBUGをtrueに変更してください。 PhpStormでステップ実行すると、ポート周りのワーニングが出ますが、一応ステップ実行はできます。 おまけ2 環境構築のコマンド一覧 コンテナビルド LAMPとredis、phpmyadmin、redis-webuiを構築 docker-compose build --no-cache apache2 php-fpm mysql workspace redis phpmyadmin redis-webui コンテナ起動 docker-compose up -d apache2 mysql workspace redis phpmyadmin redis-webui サーバーの中からlaravelのコマンドやマイグレーションをしたい時 docker-compose exec workspace bash サーバーにsshで入ったような時のような感じで操作できます。 コンテナ停止 docker-compose stop コンテナ削除 docker-compose down phpmyadminへのアクセス(デフォルト設定) localhost:8081 サーバー:mysql ユーザー:root パスワード:root redis-webuiへのアクセス(デフォルト設定) localhost:9987 認証ID:laradock 認証PW:laradock コンテナ再構築 エラーやPHPバージョン変更などでコンテナを再構築するときは、自分は下記のように一旦コンテナを削除してから再構築してます。 もっと簡略化できる場合もあります。 docker-compose down docker-compose build --no-cache apache2 php-fpm mysql workspace redis phpmyadmin redis-webui docker-compose up -d apache2 mysql workspace redis phpmyadmin redis-webui うまくいかない時 上記でも書きましたが、うまくいかない時は.envのDATA_PATH_HOSTで指定しているディレクトリを一旦削除してから、buildすると直る場合があります。
- 投稿日:2021-10-31T15:59:44+09:00
MySQL 基礎から勉強 (2)
MySQL 基礎から勉強 (1) https://qiita.com/pascucci-9/items/fdd5c4cf167f330a4ddb SQLの概要 SQLとは クエリを書くときの規則 クエリとは… ユーザーがDBに対して処理内容を指定するためのコマンド(命令)を文字で表したもの ・テーブルの作成:CREATE TABLE … ・データの挿入:INSERT INTO … など 以降、まずはデータを操作するためではないSQLのコマンドを確認していきます。 MySQLにログイン ※「MySQLモニタ(コマンドラインツール)の起動」「MySQLに接続」などなど言い方が多々あるようですが、"起動"とするとデーモンの起動とも被るため私は"ログイン"と言うことが多いです。 次のコマンドをターミナルにて実行する。 $ mysql -uroot -proot ※上記はインストール直後の状態の場合(ユーザー名:root、パスワード:root)。 パスワードを変更していたり、別ユーザーでログインする場合はそれぞれ適宜変更する。 オプションは他に以下のようなものがある。 - -D:ログイン時に使用するデータベース名を指定する - -h:ログインするDBのホストを指定する - -e:直接実行するSQLを " か 'で括って実行できる MySQLからログアウト mysql> exit パスワードをコマンドに併せて入力しないでログインする方法 "-proot"のようにパスワードを一緒に入力してしまうと、コマンド履歴で参照できるなどセキュリティの危険性がある。 "-p"だけでオプションを指定する "Enter password:"と表示されパスワードの入力待ち状態となるので、それに対してパスワードを入力する。 パスワードを記述した設定ファイルに指定する 任意の設定ファイルを作成し、 user-pwd.cnf [client] password = hogehoge ※ユーザー名(user)なども同様に指定できます。 ※~/.my.cnfに同様の設定があると、後から読み込まれるためそちらの内容が適用されます。 パーミッションを設定し、 # chmod 600 user-pwd.cnf ログインのコマンドにおいて指定する。 $ mysql --defaults-extra-file=./user-pwd.cnf -uhoge ユーザーのパスワードを変更 ・MySQL5.6以前 mysql> SET PASSWORD FOR ユーザー名@ホスト名=PASSWORD('hogehoge'); ・MySQL5.7以降 mysql> ALTER USER ユーザー名@ホスト名 IDENTIFIED BY 'hogehoge'; ※ユーザー名@ホスト名の例 - root@localhost - "fuga"@"172.31.0.10" - 'hoge'@'%' ユーザーを作成 mysql> CREATE USER ユーザー名@ホスト名 IDENTIFIED BY 'パスワード'; ユーザー名、ホスト名を確認 mysql> SELECT user, host FROM mysql.user; ユーザーに権限を付与 mysql> GRANT 権限 ON データベース名.テーブル名 TO ユーザー名@ホスト名; "権限"の部分には、全権限を示す"ALL"だったり特定の操作のみを許可する場合には"SELECT,INSERT"のようにコマンドをカンマ区切りで指定する。 なお、次のようにGRANT構文でユーザーの作成も可能だったが、MySQL8.0ではできなくなっている。 mysql> GRANT 権限 ON データベース名.テーブル名 TO ユーザー名@ホスト名 IDENTIFIED BY 'パスワード'; ユーザーの権限を確認 mysql> SHOW GRANTS for ユーザー名@ホスト名; ユーザーの権限の取消 mysql> GRANT 権限 ON データベース名.テーブル名 FROM ユーザー名@ホスト名; ユーザーの削除 mysql> DROP USER ユーザー名@ホスト名; 参考文献 基礎からのMySQL 第3版