PHP 0
全7件 (7件中 1-7件目)
1
addEventListenerで作成したイベントリスナーはどこで確認できるのか?デバッグをしていて、イベントリスナーで設定した関数が、何度も実行されてしまって、その原因を調べるために、イベントリスナーの設定情報を調べました。その時の備忘録。【前提】Windows, Chrome 使用1.Chromeで、デベロッパーツールを起動する。 デバッグする画面で、F12 を押下。2.「要素」(element)タブ選択し、addEventLister()を実行している要素を選択する。3.「イベントリスナー」タブを選択する。4.設定したイベント(例では、clickイベント)で、設定されている関数と、パラメータを確認できる。
2022.10.30
コメント(0)
javascriptで、sheetJS を使って、Excelを読み込んでJSONに変換してみました。そして、そのJSONをMySQLへINSERTしました。そのときの備忘録。■日付フォーマットの問題変換後のJSONを、MySQLにInsertしようとしたのですが、Excelの日付のデータが次のような形式に変換されました。'Tue Jul 18 2017 00:00:00 GMT+0900 (日本標準時)'しかし、この文字列では、MySQLのdate型にINSERTしても、エラーになってしまいます。このとき、XLSX.read()のオプションは、 type: 'base64', cellDates: true,オプションをいろいろ試してみたのですが、読み込みの時点では、フォーマットは決められないらしい、ということが分かりました。ということは、JSONに変換するときに、フォーマットを変更できる?XLSX.utils.sheet_to_json() を使って、こちらでも、いろいろ試して、 { raw: false, dateNF: 'YYYY-MM-DD', });このオプションで、無事、フォーマットを変換できて、MySQLにInsertできました。
2022.10.24
コメント(0)
phpMyAdminでハマった。wordpressのバージョンアップをしたら、phpMyAdminが接続できなくなった件。結論としては、設定ファイル:/etc/pypMyAdmin/config.inc.phpの修正ミスです。■1 経緯・wordpress で、バージョンアップが推奨されるメッセージがでていたので、それに従い、バージョンアップを実施・その際、データベースの更新される旨もあったのですが、そのまま実施■2 phpMyAdminのエラー・それまで通りのURLでアクセスすると、500エラー■3 設定ファイルの再設定/etc/pypMyAdmin/config.inc.php・設定がすべて初期化されてしまっていたことに気づいて、再度設定・このとき、/etc/pypMyAdmin/config.inc.php.rpmsave ファイルが出来ていることに気づいていなかったため、ゼロから記述・host,user,password を設定・しかし、500エラー解消せず■4 試行錯誤・500エラーなので、apacheの設定だと判断して、httpdのconfファイルのパラメータを試行錯誤・しかし、500エラー解消せず・諦めて、phpMyAdminを再インストール・しかし、500エラー解消せず・冷静になって、設定ファイルconfig.inc.phpを、すべて初期状態にするすると、ログイン画面が表示されたつまり、apache側の設定だと思っていたのに、phpMyAdmin側の問題だったということが判明。http500エラーだから、そう思い込んでしまったのが敗因でした。■5 設定ファイルの再度見直し・設定をもう一度、もとに戻す・やはり、500エラー・でも、原因はこのファイルのはず・設定を初期状態にして、設定をひとつずつ変更しながら、確認・そしたら、passwordの設定をしたときに、500エラー発生ここか!で、よく見ると、行末のセミコロン;がありませんでした ohz・設定を修正・ログイン画面表示!ログインすると、無事接続。しかし、既存のデータベースが見えてない状態。なにか、おかしい・・・・・ログイン画面で、ID、パスワードを入力したときのエラーメッセージが問題のようです。「ID@xxx.xxx.xxx.xxx」xxxはphpMyAdminを実行しているサーバのIPアドレスです。今回のMySQLは、Azure Database for MySQL に接続します。したがって、IDがローカルサーバのxxxと認識されていることが問題とおもわれます。Azure Database for MySQLへ接続するためのphpMyAdmin設定って、Google先生もよいアドバイスをくれないのですよねぇ。ここでしばらく、また試行錯誤しました。もともと、バージョンアップ前の設定とは違うのですが、次の形式で、設定ファイルのIDを設定することで解決しました。ID@hostまあ、正しいのですが、じゃあ、元々どうして接続できていたのだろう、という疑問が残りました。とりあえず、インシデントの回復優先ということで、対応はここまでです。ふう、これで1日つぶしました・・・・。■ご参考Azure Database for MySQL に接続するためのphpMyAdmin の設定前提:(1) /etc/pypMyAdmin/config.inc.php(ここに設定ファイルがあるとして)(2) OS CentOS 7.9.2009(3) PHP 7.2.38(4) phpMyAdmin 必要なのは、つぎの3つ。(1)host Azure Database for MySQLのデータベース名私の場合は、"xxxxxx.mysql.database.azure.com"です。(2)user ユーザ名@host名 host名は、(1)のhostです。(3)password 任意のパスワード(1)は必須です。(2)(3)は、設定ファイルに記述しなくても大丈夫です。上記以外のパラメータは、通常、デフォルトで良いと思われます。
2021.10.15
コメント(0)
先日、CSVファイルをMySQLに取り込むのに、苦労しましたが、またまた、CSVを取り込まなくてはならなくなった。しかも、前回のCSVよりも、かなり厄介な感じ。SQLServerのデータを移行することになった。その移行先がMySQL。データには、改行が含まれていたり、NULLが多かったり、データ中にカンマなど、CSVのデータ区切り文字に使いたい文字が万遍なく使われています。CSV化して、MySQLに取り込むと苦労しそうな予感がひしひしと・・・。試に、CSV化して、LOAD DATAコマンドを実行してみましたが、次から次へとエラーとなり、終わりが見えなかったので、別の方法を探してみました。辿り着いた方法は、CSVではなく、XMLファイルにして取り込むことです。はじめてやってみましたが、これがとても楽ちん。CSVファイルにして、LOAD DATAコマンドで取り込むと、テーブルとCSVファイルの項目数や、データ型が一致していないとことごとく、エラーになります。そのため、色々と事前に加工してから、INPUTデータとして利用します。これが、LOAD XMLコマンドだと、事前加工なしのファイルを一回で取り込むことができました。実際にやった手順1.移行先のMySQLにテーブル作成 テーブルは、慣れた方法で作成します。 特別なことは必要ありません。 私は、地道に、Create Tableコマンドで作成しました。 スクリプトにしておけば、簡単にテーブルを作り直すことができます。2.SQLServerに、MS-ACCESSで接続し、移行対象のテーブルをリンク ここも特別はことは必要ありません。 リンクテーブルでデータが表示できる状態になればOKです。3.対象テーブルのデータをリンクテーブル経由で、XMLファイルに保存 この時、文字コードをSJISからUTF-8に変換しました。 変換するかどうかの、チェックを入れるだけ。 このタイミングで、文字コードを変換するのが、一番手間がないと思います。4.XMLファイルをMySQLクライアントを実行できる環境に転送 特別なことは必要ありません。 5.必要であれば、XMLファイルの改行コードを、転送先の環境にあわせて変換 私は、Linux環境を使ったので、Windowsの改行コード【Ctrl+M(^M)】を削除しました。6.LOAD XMLコマンドを実行して、MySQLへロード以上ロード時にエラーが出なかったので、エラー時の対応は、やってみないとわかりません。XMLファイルの取り込み、思ったよりも使えそうです。
2020.09.10
コメント(0)
突然、yumコマンドがエラーで、実行できなくなりました。File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^とか言われます。このエラーで、ググってみたら、どうやら、python3 をインストールしたときの既知の問題らしい。yumコマンドがpythonで書かれているので、スクリプトの先頭行の部分を、python2にしてあげれば良いようだ。修正するのは、この2つで良さそう。/usr/bin/yum/usr/libexec/urlgrabber-ext-downこのファイルの1行目#/usr/bin/python↓#/usr/bin/python2とりあえず、これで、エラー解消。
2020.06.17
コメント(0)
名前ベースのVirtualHostを設定しました。1つのIPアドレスのサーバに、2つのVirturalHostを設定して、DocumentRootを分けようとしています。VirtualHostの設定は、それぞれ、ServerName AServerName Bとします。ServerName Aは、問題なくアクセスできます。ところが、ServerName Bは、400エラーとなります。設定を何度みなおしても、間違いが見つかりません。両社の違いは、DocumentRootと、ServerName 、それと、logファイルの設定です。仕方がないので、それぞれの値を一つずつ変更しながら、結果を確認しました。そして、わかったのは、ServerName Bとして設定したホスト名に問題がありました。ホスト名に "_"(アンダースコア)が含まれていたことが原因でした。あらためて、グーグル先生に聞いてみたら、結構、これでハマっている方がいるようで、たくさん事例がヒットしました。調べ方が悪かったようです。RFCが修正されて、標準命名規則が変更になっていました。apacheもそれに則り、Apache 2.4.25 以降でホスト名のアンダースコアが禁則文字となっていました。これを修正したら、即OK、のはずだったのですが、新たなエラーが発生。「hostsファイルの設定がブラウザに反映されない」なかなか、先に進めない・・・。
2020.06.16
コメント(0)
名前ベースのVirtualHostの設定のテストをする際、ServerNameに設定したホスト名でURLを指定する必要があります。このホスト名に禁則文字を使って、めちゃくちゃハマりました。「名前ベースのVirtualHostを設定したら、400エラーになってはまった」それを解決したら、次はこちらの問題発生です。DNSに登録する前のテストとしては、ブラウザを実行するPCで名前解決する必要があるので、PCのhostsファイルにホスト名を定義しました。今回は、一つのIPアドレスをもつサーバに、2つのVirtualHostを定義しました。この2つのホスト名をテストに使うPCのhostsファイルに書いたわけです。pingで名前解決できたので、次に、ブラウザから、URLで接続してみました。すると、ホスト名が解決できない、というエラーとなりました。このとき、気づけばよかったのですが、このエラー解決に苦戦したので、初心者のつまづきとして記録しておきます。いつものように、グーグル先生に聞いてみました。DNS関連のいくつかの解決案を提示されるので、片っ端から試してみましたが、いずれもうまくいきません。URLをIPアドレスで指定すれば、接続できますが、そもそも、これだと、一つのIPで、複数のVirtualHostのテストができません。別のブラウザに変えても、変化はありません。最終手段として、PCを再起動しましたが、これでも解決できず。困りました。そして、はじめに戻り、エラーをじっくり確認しました。といっても、名前解決できない、というエラーだけで、補助的なメッセージはでていません。ここで、気づきました。あれ?このエラーメッセージは誰が出力しているんだろう?よくよく見ると、このメッセージ、プロキシが返してきています。プロキシが、名前解決できない、といっているわけです。pingは、PCのOSで名前解決していますが、ブラウザはプロキシが名前解決している、ということ。そりゃ、そうですねえ。PCのOSが見ているhostsと、プロキシが見ているhosts違います。いくら、PCのhostsを変更しても、プロキシはそれを知らないので、自分のhostsか、DNSで名前解決を試みた、ということです。ということで、ブラウザのプロキシ設定に例外として登録してみました。無事解決。さあて、DNS登録、さっさとやっておこう。
2020.06.16
コメント(0)
全7件 (7件中 1-7件目)
1