- 投稿日:2019-08-28T17:35:28+09:00
LAMP環境でOSS mediawiki を動かしてみる
環境確認
# OS $ cat /proc/version Linux version 4.4.0-75-generic (buildd@lgw01-21) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #96-Ubuntu SMP Thu Apr 20 09:56:33 UTC 2017# mysql $ mysql --version mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper# php $ php -v PHP 7.0.33-0ubuntu0.16.04.6 (cli) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.33-0ubuntu0.16.04.6, Copyright (c) 1999-2017, by Zend Technologiesインストール
公式サイトインストール方法を参照
https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_or_Ubuntu/ja
# 結構処理長い $ sudo apt-get update && sudo apt-get upgradeMediaWiki のインストール
$ cd /tmp/ $ wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.0.tar.gz $ tar -xvzf /tmp/mediawiki-*.tar.gz $ sudo mkdir /var/lib/mediawiki $ sudo mv mediawiki-*/* /var/lib/mediawikiMysql新規ユーザー登録
# create a NEW mysql user (new_mysql_user): $ sudo mysql -u root -p # Mysqlのrootパスワードを入力 Enter password: mysql> CREATE USER 'new_mysql_user'@'localhost' IDENTIFIED BY 'THISpasswordSHOULDbeCHANGED'; Query OK, 0 rows affected (0.00 sec) quit; sudo mysql -u root -p # Mysqlのパスワードを入力 Enter password: mysql> CREATE DATABASE my_wiki; Query OK, 1 row affected (0.00 sec) mysql> use my_wiki; Database changed mysql> GRANT ALL ON my_wiki.* TO 'new_mysql_user'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> quit; Byeシンボリックリンクを作成
$ sudo ln -s /var/lib/mediawiki /var/www/html/mediawikiapache再起動
$ sudo phpenmod mbstring $ sudo phpenmod xml $ sudo systemctl restart apache2.serviceここまで終わったらブラウザで対象ページ開いて手順通りにインストールを実行
http://****/mediawiki/
インストールが完了したらLocalSetting.phpが入手できるので対象ディレクトリに設置
$ sudo mv /var/www/LocalSettings.php /var/lib/mediawiki/インストール完了
http://****/mediawiki/
再度ブラウザで動作をチェックする
- 投稿日:2019-08-28T16:02:53+09:00
1つのデータベースで2つのWordPressサイトを管理する方法
はじめに
大事なデータを扱う前は必ずバックアップをとってから行いましょう!責任とれません!
プログラミング歴2ヶ月の素人が書いています。(間違っていたらご指摘ください)
「1つのデータベースで2つのWordPressサイトを管理する」ための学習メモです。
サブドメインを使用します。
レンタルホスティングサービスとしてGoDaddyを使用しています。
データテーブル名の接頭辞を変更し、2つのサイトで1つのデータベースを使い分けます。
今回の目的
GoDaddyの一番安いプランでホスティングサービスを契約し、メインのドメインとサブドメインで2つのWordPressサイトを立ち上げます。
一番安いプランだと1つのデータベースしか作成することができませんが、データテーブル名の接頭辞を変更して2つのサイトを管理します。
サブドメインの作成
ホスティングサービスのcPanel(またはそれに相当する管理画面)からサブドメインを作成します。
Subdomain: 使用したいサブドメインを[Subdomain]に入力します。
Domain: メインドメインを選択します。
Document Root: 自動で入力されます。(ここにサブドメインで使用するサイトのディレクトリが作成されます。。)
「Create」を押すと、サブドメインとそれに対応するディレクトリが自動で作成されます。
ディレクトリの確認
サブドメインを作成したら、「File Manager」を確認し、
public_html内にサブドメイン用のディレクトリができていることを確認します。サブドメインと同名のディレクトリ内に、Wordpressを展開していきます。
データベースのユーザ設定
データベースのユーザー設定をしたことがない場合は、
cPanelの「MySQL® DataBase」から新規ユーザーの作成を行います。名前とパスワードはどんなものでも構いませんが、あとで使用するので控えておきます。
メインドメイン用データベースをエクスポート
cPanelの「phpMyAdmin」から、データベースにアクセスします。
メインドメイン用サイトのデータベースのエクスポートを行います。Sqlファイルをエクスポートしてダウンロードします。
テーブル名の接頭辞を変更する
テキストエディタで先ほどダウンロードしたsqlファイルを開きます。
文字の一括置換を使用し、WP_という文字列を別の文字列に変更します。(例えばWP2_など)メインドメイン用サイトの
wp-config.phpを変更するcPanelの「File Manager」から、
wp-config.phpを開き、以下のコードを書き換えます。/** * WordPress データベーステーブルの接頭辞 * * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を * インストールすることができます。半角英数字と下線のみを使用してください。 */ $table_prefix = 'wp_';
$table_prefix = 'wp_';のイコール以下を、先ほど一括置換した接頭辞に書き換えて保存します。サブドメイン用WEBサイトのアップロード
FTPクライアント、またはcPanelの「File Manager」から、サブドメインのディレクトリにワードプレスファイルを展開します。手順は以下で説明します。
「Dupulicator」でサイトのコピーZipファイルを作成する
すでにローカル環境で準備したサイトがある場合は、以下記事も参考になるかもしれません。
『GoDaddyでサーバとドメインを借りてローカル環境でテストしたWordpressサイトをデプロイする方法』
https://qiita.com/shin-ph/items/ef87d163f1f094c7f24a「Dupulicator」というプラグインを使用することで、Wordpressサイトのコピーzipファイルとインストーラを作成することができます。
作成したWordpressサイトのコピーzipファイルとインストーラを、サブドメインのディレクトリにアップロードします。
サブドメイン用サイトを展開してインストールする
「
http://サブドメイン/installer.php」にアクセスすることで、インストーラが起動します。
基本的に設定を変える必要はありませんので、指示にしたがってzipファイルを展開します。Step2で「Connect and Remove all the data」を選択します。
これによって、既存のデータベース(メインドメイン用)は全てサブドメインのデータベースに置きかわります。あとは指示にしたがってインストールを終了させます。
サブドメイン用サイトの確認
インストールが終了したら、サブドメインにアクセスし、サイトがきちんと動くかどうか確認します。
動いていれば、サブドメイン用サイトの設定は終了です。メインドメイン用サイトのデータベースを追加
既存のデータベース(メインドメイン用)は全てサブドメインのデータベースに置きかわってしまいましたので、このままではメインドメイン用のサイトは動きません。
cPanelの「phpMyAdmin」から、データベースにアクセスします。
データベースのインポートを行います。先ほど編集したSqlファイルをインポートします。
接頭辞を変更したメインドメイン用サイトのデータベースが追加されます。
メインドメイン用サイトの確認
メインドメインにアクセスし、サイトがきちんと動くかどうか確認します。
動いていれば、メインドメイン用サイトの設定は終了です。まとめ
一番安いプランだと、データベースを1つしか作れませんが、テーブル名の接頭辞を変更することで、2つのサイトを持たせることができます。
- 投稿日:2019-08-28T15:12:26+09:00
初心者がMacのローカル環境にMySQL 8.0をインストールしてSequel PROで接続するまでの注意点。
はじめに
会社でMySQLを使用する業務を行うことになりました。
ProgateのSQLコースを修了しただけの低レベルの僕に合わせて、
上司がMySQLの基礎を固めるための簡単なトレーニングメニューを組んで下さいました。
簡単そうだからすぐに終わらせようと思っていたのに、最初の段階でちょっと躓いて、一週間以上かかってしまいました。
今後同じ道を辿る初心者を生み出さないために、注意点をまとめました。Google先生が教えてくれる既存の資料は、Homebrewを使用する方法だとか、
MySQL5.6 や 5.7 のやり方のものがほとんどです。
この記事は、きちんと現時点での最新版 MySQL8.0 でのやり方を記録しています。記事のターゲット
下記のようなキーワードでGoogle検索している方に、ぜひこの記事を見つけてほしいです。
「MySQL 接続できない」
「the server quit without updating pid file」
「No such file or directory」
「Access denided for user」
「server command not found」
「Authentication plugin 'caching_sha2_password' cannot be loaded」今回の目的
上司から頂いたトレーニングメニューは以下です。
参考資料:MySQL5.6リファレンスマニュアル(日本語版) をもとに、
1. ローカル環境もしくは仮想環境を用意してMySQLをインストールする。
2. 起動したMySQLへクライアントツール(なんでもよし)で接続する。
3. リファレンスマニュアル実施(3.3 データベースの作成と使用 )
4. リファレンスマニュアル実施(3.6 一般的なクエリーの例 )上記ミッションのうち、 1~2 を遂行する際に少し躓いたため、これを遂行する際の注意点をここにまとめています。
※ MySQLはローカル環境にインストールします。
※ MySQLは最新版の8.0をインストールします。
※ MySQL8.0の資料は英語表記のため、唯一日本語資料が用意されているMySQL5.6のマニュアルを参考に進めております。結論
申し訳有りません。
Sequel PROでログインできた段階で、舞い上がってこんな記事を作成してしまいましたが、
Sequel PRO上で操作しようとすると必ずエラーがでて進まなくなってしまいました。
そこで再度調べた所、認証方式がどうこうではなく、そもそもSequel PROはMySQL8.0に非対応とのことで、どうあがこうと無理という結論に達しました。僕がこの結論にたどり着くまでの苦労の軌跡を残すため、この記事は削除せずに置いておくことにします。
どうか、おなじく無駄な時間を過ごす初心者が1人でも減ってくれますように…。おわり。
【要点】 クライアントツールの選定
さて、今回の重要ポイントを先に説明させていただきます。
今回、クライアントツールはなんでもよいというミッションだったので、評判の良いSequel PROを選択しているのですが、ここが最大のワナなのでした。
なんとSequelPROは、MySQLが採用している最新のログイン認証方式(caching_sha2_password)に非対応だったのです。
以下の記録は、そのことを頭に入れてから読み進めてください。
ローカル環境にMySQLをインストールする。
注意点:
接続に躓いてGoogle検索してみると、Homebrewを使用するインストール方法が沢山ヒットしますが、それは大抵の場合 MySQL5.6 や 5.7 向けの方法かと思われます。
この記事では、公式サイトからダウンロードできる MySQL8.0 用のディスクイメージ(.dmgファイル)を使用してインストールします。
MySQL公式ページの DOWNLOADSメニュー > Communityタブ > MySQL Community Server(GPL) から、DMG Archive をダウンロードして、実行する。
インストーラでUse Strong Password EncryptionかUse Legacy Password Encryptionを選ぶ画面になったらUse Legacy Password Encryptionを選択する。
あとは通常通りインストールを完了させる。
(Google検索してみると、このあとTerminalでmysql.server startをさせるような記事が多い。
しかし、今回の方法でインストールしている場合、システム環境設定からサーバーの起動が可能。
さらに、基本は自動でサーバーを起動してくれているため、上記の操作は不要である。)
Terminalでmysql -vと入力してみた際、コマンドがmysql: command not foundとなる時は、ターミナルで下記を実行。echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
試しにTerminalでmysql -u root -pと入力して、パスワードを入力すると、問題なくMySQLが実行できると思われる。
(MySQL8.0以前はrootユーザのパスワードを設定するかどうかは任意だったようだけど、今回の方法でインストールしている場合、パスワード設定は必須なので、-pというオプションを使用しないでログインすることは不可能です。)
以上。
既に失敗してしまった方へ。
上記のような手順を踏まず、既にドツボにハマってしまった方。
まだやり直せる状況であれば、MySQLのクリーンインストールを行う事が一番安全だと思います。
Google検索すると、MySQLのアンインストールをする際に、Terminalから関連ファイルの削除を行う情報が多くヒットします。
しかし、今回の方法でインストールしている場合、システム環境設定から完全にアンインストールを行うことが可能です。Terminalを使用してアンインストールをする必要は恐らくありません。
(間違っていたらコメントください。)
システム環境設定からアンインストールをする際に、Also uninstall this preference pane, and launchd support files.にチェックをして下さい。
既にMySQLを運用してしまっている等で、クリーンインストールをすることが出来ない場合、ユーザごとに認証方式を変更する方法もあるようです。
参考:MySQL8.0 認証方式を変更する(Laravel5)
僕はこれを行った際、rootユーザの認証方式を変更してしまい、再度MySQLに接続できなくなる事象が発生しているので、
認証方式を変更する場合は、rootユーザではなく、新規作成されたユーザの設定を変更したほうが安全だと思います。
おわり。
- 投稿日:2019-08-28T15:12:26+09:00
初心者がMacのローカル環境にMySQL 8.0をインストールしてSequel PROで接続したかった奮闘記。
はじめに
会社でMySQLを使用する業務を行うことになりました。
ProgateのSQLコースを修了しただけの低レベルの僕に合わせて、
上司がMySQLの基礎を固めるための簡単なトレーニングメニューを組んで下さいました。
簡単そうだからすぐに終わらせようと思っていたのに、最初の段階でちょっと躓いて、一週間以上かかってしまいました。
今後同じ道を辿る初心者を生み出さないために、注意点をまとめました。Google先生が教えてくれる既存の資料は、Homebrewを使用する方法だとか、
MySQL5.6 や 5.7 のやり方のものがほとんどです。
この記事では、現時点での最新版 MySQL8.0 でのやり方を記録しています。記事のターゲット
下記のようなキーワードでGoogle検索している方に、ぜひこの記事を見つけてほしいです。
「MySQL 接続できない」
「the server quit without updating pid file」
「No such file or directory」
「Access denided for user」
「server command not found」
「Authentication plugin 'caching_sha2_password' cannot be loaded」今回の目的
上司から頂いたトレーニングメニューは以下です。
参考資料:MySQL5.6リファレンスマニュアル(日本語版) をもとに、
1. ローカル環境もしくは仮想環境を用意してMySQLをインストールする。
2. 起動したMySQLへクライアントツール(なんでもよし)で接続する。
3. リファレンスマニュアル実施(3.3 データベースの作成と使用 )
4. リファレンスマニュアル実施(3.6 一般的なクエリーの例 )上記ミッションのうち、 1~2 を遂行する際に少し躓いたため、これを遂行する際の注意点をここにまとめています。
※ MySQLはローカル環境にインストールします。
※ MySQLは最新版の8.0をインストールします。
※ MySQL8.0の資料は英語表記のため、唯一日本語資料が用意されているMySQL5.6のマニュアルを参考に進めております。結論
申し訳有りません。
Sequel PROで接続できた段階で、舞い上がってこんな記事を作成してしまいましたが、
Sequel PRO上で操作しようとすると必ずエラーがでて進まなくなってしまいました。
そこで再度調べた所、認証方式がどうこうではなく、そもそもSequel PROはMySQL8.0に非対応とのことで、どうあがこうと無理という結論に達しました。僕がこの結論にたどり着くまでの苦労の軌跡を残すため、この記事は削除せずに置いておくことにします。
どうか、おなじく無駄な時間を過ごす初心者が1人でも減ってくれますように…。おわり。
【要点】 クライアントツールの選定
さて、今回の重要ポイントを先に説明させていただきます。
今回、クライアントツールはなんでもよいというミッションだったので、評判の良いSequel PROを選択しているのですが、ここが最大のワナなのでした。
なんとSequelPROは、MySQLが採用している最新のログイン認証方式(caching_sha2_password)に非対応だったのです。
以下の記録は、そのことを頭に入れてから読み進めてください。
ローカル環境にMySQLをインストールする。
注意点:
接続に躓いてGoogle検索してみると、Homebrewを使用するインストール方法が沢山ヒットしますが、それは大抵の場合 MySQL5.6 や 5.7 向けの方法かと思われます。
この記事では、公式サイトからダウンロードできる MySQL8.0 用のディスクイメージ(.dmgファイル)を使用してインストールします。
MySQL公式ページの DOWNLOADSメニュー > Communityタブ > MySQL Community Server(GPL) から、DMG Archive をダウンロードして、実行する。
インストーラでUse Strong Password EncryptionかUse Legacy Password Encryptionを選ぶ画面になったらUse Legacy Password Encryptionを選択する。
あとは通常通りインストールを完了させる。
(Google検索してみると、このあとTerminalでmysql.server startをさせるような記事が多い。
しかし、今回の方法でインストールしている場合、システム環境設定からサーバーの起動が可能。
さらに、基本は自動でサーバーを起動してくれているため、上記の操作は不要である。)
Terminalでmysql -vと入力してみた際、コマンドがmysql: command not foundとなる時は、ターミナルで下記を実行。echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
試しにTerminalでmysql -u root -pと入力して、パスワードを入力すると、問題なくMySQLが実行できると思われる。
(MySQL8.0以前はrootユーザのパスワードを設定するかどうかは任意だったようだけど、今回の方法でインストールしている場合、パスワード設定は必須なので、-pというオプションを使用しないでログインすることは不可能です。)
以上。
既に失敗してしまった方へ。
上記のような手順を踏まず、既にドツボにハマってしまった方。
まだやり直せる状況であれば、MySQLのクリーンインストールを行う事が一番安全だと思います。
Google検索すると、MySQLのアンインストールをする際に、Terminalから関連ファイルの削除を行う情報が多くヒットします。
しかし、今回の方法でインストールしている場合、システム環境設定から完全にアンインストールを行うことが可能です。Terminalを使用してアンインストールをする必要は恐らくありません。
(間違っていたらコメントください。)
システム環境設定からアンインストールをする際に、Also uninstall this preference pane, and launchd support files.にチェックをして下さい。
既にMySQLを運用してしまっている等で、クリーンインストールをすることが出来ない場合、ユーザごとに認証方式を変更する方法もあるようです。
参考:MySQL8.0 認証方式を変更する(Laravel5)
僕はこれを行った際、rootユーザの認証方式を変更してしまい、再度MySQLに接続できなくなる事象が発生しているので、
認証方式を変更する場合は、rootユーザではなく、新規作成されたユーザの設定を変更したほうが安全だと思います。
おわり。
- 投稿日:2019-08-28T04:56:19+09:00
Ruby on Rails + MySQLのアプリケーションをHerokuにデプロイする手順(Heroku.yml)
どんな記事か
- Rails+MySQLのアプリケーションをDockerで環境構築した人が、herokuで本番環境を構築できるようになる。
対象読者
- DockerでRails+MySQLを起動して、「Yay! You’re on Rails!」を表示している人。
- 本番環境にも反映して誰からにも見せたい人。
- デプロイのエラーで躓いて困っている人。
完成後のイメージと各ツールのバージョン
今回こちらの実機で確認しました。
- macOS Mojave 10.14.5
- Ruby 2.6.3
- MySQL 5.7
- Heroku 7.29
- Git 2.20.1そもそもどうやって、DockerでRails+MySQLの環境構築をすればいいのという方へ??
こちらのgithubのページで、確認してもらえたらと思います。。
https://github.com/YutakaYamasaki/docker_setup_rubyonrailsちなみに、今回のソースは全て上記の手順を行なった後、デプロイする形になります。
やること
- Railsのアプリケーション修正、追加
- Herokuにデプロイ
Railsアプリケーションのファイルを修正、追加する。
Gemfile(修正、追加)
ここで、mysqlとpgのgemを修正、追加します。
開発環境ではMySQLを使用しますが、本番環境(デプロイ)ではPostgreSQLを使用していきます。変更前と変更後です。
Gemfile##変更前 gem 'mysql2', '>= 0.4.4', '< 0.6.0' ##変更後 gem 'mysql2', '>= 0.4.4', '< 0.6.0', groups: %w(test development), require: false gem 'pg', '~> 0.19.0', group: :production, require: falsedatabase.yml(修正、追記)
こちらのファイルにも、本番環境ではPostgreSQLを使用するので、下記のように修正してください。
productionの項目がなければ、追記してください。
項目があれば、削除してください。database.ymlproduction: <<: *default adapter: postgresql encoding: unicode pool: 5heroku.yml(新規ファイル作成)
heroku.ymlファイルを作成します。
アプリのファイルの直下に、heroku.ymlファイルを作成して、下記のように記載してください。heroku.ymlbuild: docker: web: Dockerfile run: web: bundle exec puma -C config/puma.rbこれで各ファイルの編集が完了しました。
Docker側にもファイルの変更を反映させておきましょう。$ docker-compose build誤字脱字がないか確認した後に、
Herokuへデプロイを進めましょう!Herokuにデプロイ
基本全てターミナルで行います。ターミナルの操作に慣れているという前提で進めていきます。
Herokuにログイン
下記のコマンドを打ちます。
途中でエンターキーを押すとブラウザが立ち上がるので、ブラウザで操作してログインが終わると、
ターミナルの方でもログインができます。$ heroku login heroku: Press any key to open up the browser to login or q to exit: ##ここでエンターキーを押すとブラウザが開くので、ログインを行う。 ##ブラウザでログインができてターミナルに戻ると、下記が表示されるはず Opening browser to https://cli-auth.heroku.com/auth/browser/************** Logging in... done Logged in as *******@email.comHerokuにアプリケーションを作成する。
下記のコマンドを打ちます。
すると、URLが自動発行されます。$ heroku create ##ちなみにcreateの後にスペースキーを押して、好きなアプリ名を入力すると、そのアプリ名のURLが自動発行されます。お試しあれ Creating app... done, ⬢ ******* https://******.herokuapp.com/ | https://git.heroku.com/*******.gitHeroku側でPostgreSQLを使用する。
Heroku側でPostgreSQLを使用するように設定します。
クレジットカードを登録したり、有料会員になるとMySQLも使用できます。$ heroku addons:create heroku-postgresql:hobby-dev Creating heroku-postgresql:hobby-dev on ⬢ ******... free Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Created postgresql-transparent-70433 as DATABASE_URL Use heroku addons:docs heroku-postgresql to view documentationちなみに、このURLにアクセスしてもエラーが出てきます。なぜなら、アプリがHeroku側にないから。
これからアプリをheroku側にアップロードして、デプロイします。Heroku.ymlを使ってデプロイする。
Herokuではコンテナ諸々をデプロイすることができます。
その中で、デプロイする方法は2通りあります。
- Container Registry GAを使用してデプロイ
- Heroku.ymlを使用してデプロイ←今回はこちらを使用。詳細は下記見てもらえると
https://devcenter.heroku.com/categories/deploying-with-docker
まずは、Heroku側でStackをcontainerにセットします。$ heroku stack:set containerその後、下記のコマンドを打って、デプロイをしましょう。
$ git init $ git add . $ git commit -m "******" $ git push heroku masterデプロイできたか確認する。
下記のコマンドでブラウザが立ち上がり、Railsのアプリケーションがデプロイされているか確認します。
$ heroku open
- 投稿日:2019-08-28T01:17:52+09:00
XFREEのサーバ(Mysql)にVisualStusioから接続したい。(失敗) [メモ]
XFREEのサーバ(Mysql)にVisualStusioから接続したい。 [メモ]自分メモです。
まえおき。
講義内でローカルのmysqlに接続する方法は習っていたが外部サーバに接続する方法が全く分からなかった。卒業研究でも必要なためメモ用にまとめる。
開発環境
Visualstudio2017
参考サイト
wp-config.phpに指定する「MySQL のホスト名」とは
https://www.nishi2002.com/4123.html
(ホスト名といいう単語がわからなかった。)実践
今回は接続の確認のみなのでopen,closeできることを確認する。
form1.csusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Diagnostics; using System.IO; namespace ConnectionTest { public partial class Form1 : Form { MySqlConnection connection = new MySqlConnection(); MySqlCommand command = new MySqlCommand(); public Form1() { InitializeComponent(); connection.ConnectionString = "server = *********; user id = *************; password = ********; persistsecurityinfo = True; database = ********"; } private void button1_Click(object sender, EventArgs e) { connection.Open(); Console.WriteLine("Open"); } private void button2_Click(object sender, EventArgs e) { connection.Close(); Console.WriteLine("Close"); } } }結果
無理だった。タイムアウトで弾かれ調べた結果以下のものを見つけました。
[レンタルサーバーのデータベースに外部から接続できません。]https://teratail.com/questions/152035
知識不足でした。
VPS借りてやってみます。
- 投稿日:2019-08-28T01:17:52+09:00
XFREEのサーバ(Mysql)にVisualStudioから接続したい。(失敗) [メモ]
XFREEのサーバ(Mysql)にVisualStudioから接続したい。 [メモ]自分メモです。
まえおき。
講義内でローカルのmysqlに接続する方法は習っていたが外部サーバに接続する方法が全く分からなかった。卒業研究でも必要なためメモ用にまとめる。
開発環境
Visualstudio2017
参考サイト
wp-config.phpに指定する「MySQL のホスト名」とは
https://www.nishi2002.com/4123.html
(ホスト名といいう単語がわからなかった。)実践
今回は接続の確認のみなのでopen,closeできることを確認する。
接続にはMySQL Connector/NETを使用する。
form1.csusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Diagnostics; using System.IO; namespace ConnectionTest { public partial class Form1 : Form { MySqlConnection connection = new MySqlConnection(); MySqlCommand command = new MySqlCommand(); public Form1() { InitializeComponent(); connection.ConnectionString = "server = *********; user id = *************; password = ********; persistsecurityinfo = True; database = ********"; } private void button1_Click(object sender, EventArgs e) { connection.Open(); Console.WriteLine("Open"); } private void button2_Click(object sender, EventArgs e) { connection.Close(); Console.WriteLine("Close"); } } }結果
無理だった。タイムアウトで弾かれ調べた結果以下のものを見つけました。
[レンタルサーバーのデータベースに外部から接続できません。]https://teratail.com/questions/152035
知識不足でした。
VPS借りてやってみます。
- 投稿日:2019-08-28T00:21:02+09:00
docker-composeでMySQL serverが起動OKであることを待つスクリプト
docker-compose を使ってMySQLを起動する処理を含んだスクリプトを書く時の、ちょっとしたネタ
(ちなみにOSはUbuntuを想定)使っている
Dockerfileとdocker-compose.ymlはそれぞれ以下のようなものです。DockerfileFROM mysql:5.6 EXPOSE 3306docker-compose.ymlversion: '2' services: mysql: build: ./docker-compose/mysql ports: - "3306:3306" command: "mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' MYSQL_DATABASE: mydb困るのは、
docker-compose up -dコマンドが終了した後 すぐに MySQLクライアントで接続しようとしても、クエリが応答しないことです。今までは「ざっくり10秒スリープ」みたいな対応でごまかしていましたが、ウエイト処理を以下のように書くと、遊びの時間が少なくてよいと思います。
timeout 20s sh -c "until (mysql -u root -h 0.0.0.0 -e \"select version();\") do echo .; sleep 1; done"
- 1秒間隔で問い合わせを行う
- 応答が返ってきたら、その場で終了
- 20秒間応答が返ってこなかったら、タイムアウト
といった処理になります。









