投稿

ラベル(MySQL)が付いた投稿を表示しています

キーボード修理

イメージ
前回 調子が悪くなったと書きましたが、部品が手配できて時間が取れたので直しました。 茶軸のスイッチを購入 Cherryの茶軸は 10個で1,399- ということで購入。 本当は1個で充分なんだけど、仕方なく残りは予備部品として保管。 作業手順 キーボードの裏側ネジを3箇所外します。 左右と中央の丸シールの下。 左右はパッドを貼っているので、少しめくって外します。 (あとで綺麗に戻るので心配なしです) ケーブルが出ている方は、スッと外れ、手前(下側)は、内部に爪が有るので、ピックやカード、マイナスドライバなどで少し隙間を開けるようにして広げれば外れます。 自分は親指の爪で空きました。 今回は「E」が調子悪いので、該当のピン2箇所をハンダ吸いで綺麗に取り除いて、裏側から引き抜いて完了。 基板にしっかりとどのキーかがプリントされているので分かりやすいですねぇ 入手した新品の茶軸を差し込んでハンダ付けします。 この時点で動作確認が可能になるので、直したキーとその周辺が正しく入力できるのをチェック。 問題なく、無事に動作しました。 最後にカバーを取り付けて完了! 残ったのは9個の茶軸…。 今回の費用 Cherryの茶軸10個セット :1,399- キーキャップ引き抜き工具 : 475-  ちなみに10個セットには、簡易引き抜きがついてきますが、ちゃんとしたもののほうが楽に作業できます。(昔買ったのに、どこかに行ってしまったので再購入)  ということで、1900円ほどで完治しました。  手間賃考えると買ったほうが安いかも(笑)

MySQLで接続エラー

 MySQLコマンドを実行すると... これまで、普通に使えていた以下のコマンドが何故かエラーになるようになった。 Updateの影響だとは思うのだが…。 ``` $ mysql -p Enter password:  ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) ``` 原因が分からない。 一応、ERRORメッセージで検索すると、同様なエラー報告はあるものの、どれを試しても動作しない。 で、仕方なくコマンドが通るマシンと、エラーを吐くマシンで比較しながら追ってみた。 まず、/tmp/mysql.sock が無いというので、作成する方法は所有権を変えようが、Permissionを変えようが、結局はだめ。 作成して実行すると、pidファイルが怪しい。 /var/lib/mysql/マシン名.pid を生成するはずなのに、エラーが起きるマシンでは生成されていないことを突き止めた。 サービス起動のスクリプトの異常なのか? と思いつつも、GUIツールから接続すると正常にDBに繋がり、問題なく操作できる。 SSHでtunnelすれば接続できるし…。 解決方法を見つけた! そこで、mysqlコマンドのオプションを色々試して見ると…。 hostを指定すると動作することが判明 どうも、localhostが正常に解決できていない感じ…。 そこで、以下のように実行してみる $ mysql --host=127.0.0.1 -p すると、正常に動作することが判明! 毎回記述するのは手間なので、aliasを設定する。 .bashrc もしくは .bash_aliasesに以下のように記述。 alias mysql='mysql --host=127.0.0.1' これで、OK これまで通り、mysql -pと叩けば正常に動作する。 そのうち、スクリプトが修正されるかもしれないので、本体をいじるより安全に運用できるので良し! 苦戦している人は、試してみると良きです。

機器増強

イメージ
メインのPCにパーツを追加  年末のブラックフライデーセールやら、タイムセールを利用して機器パーツを買ってしまっていた。 メモリ 16GB×2を追加 → 合計で64GB GeForce RTX 3060 Ti に換装 27インチ 4Kディスプレイ 置換え 主に、ディスプレイ周りを強化してみた。 ビデオカード こいつは、1650(2GB)→3060(8GB)と相当強化できた。   https://amzn.to/41fQsVl これまでAIで画像処理するのに、ほとんど役に立たなかったけれど、今度はかなり強化できた。 こんな感じの画像(あくまでも生成した画像で写真ではないです)をサクッと出力できるようになった!! 4Kディスプレイ もともと27インチディスプレイを2枚構成で使用していたので、4Kはどうなの?と思って購入。 ちょうどセールだったので、28000円以下で購入。   https://amzn.to/41fQsVl 動作は何も問題ない! ところが、実際に使ってみると、高解像度過ぎて…。 老眼の自分には細かすぎて厳しい! でもって、左側(4K)、右側(FHD)だと、バランスが悪くて操作しにくいことが判明。マウスの移動が引っかかったり、Windowの移動がしにくかったり…。 仕方なく、150%拡大表示することで、左右のバランスがちょうどよい感じ これって4Kの意味がない…と思ったのだけど、実際の表示を見るとFHDと同じサイズでアプリやWindowが表示されるんだけど、みやすさが格段に良くなっている。 おすすめです。 メモリ増強 ここへ来て、メモリが安かったので追加してみた。 14000円弱で、+32GBと言うことです。   https://amzn.to/3Z0FmBI さすがに合計64GBあると、何をやっても余裕です。 大きなファイルもオンメモリ、複数のアプリ起動も問題無…。 いろいろと使っていて、一番良いなというのが仮想マシンでWindows10もしくは11を起動しっぱなし(最小化して)にしておくことです。  仮想のWindowsに8GB程度のメモリを割り当てておけば、大体の処理は困らない。 でもって、リモートディスプレイを有効にしておく。 すると、家庭内のネットワークを通じて、Windowsがいつでも利用できるという方法。 当たり前なんだけど、これが楽です。 ...

ChromeOSで画面がおかしい(Linux)

イメージ
 絶賛運用テスト中のChromeOSですが… すでに入手してからかなりの時間使っているChromeOS、なかなか使い勝手が良くて遊んでします。 欠点は、Filesystemがやや遅目で、特にLinuxからChromeOSや、その逆を行った時にイラッとすることがありますが、それ以外はなかなか良い感じ。 最近は、開発にどの程度使えるのかと、Linux上に使える環境を構築し、AndroidアプリでSpotifyやAmazonPrimeでビデオを見たりと、結構楽しめています。 開発環境をMainマシンと同じことが出来るようにしてやろうと、少しずつ作業を進行中。 vscode(Editor) fcitx-mozc(日本語変換エンジン) Brave(ブラウザ) Slack(チャットツール) wireshark(ネットワークツール) wxMaxima(数式処理システム) Notable(MarkdownEditor+) Steam などのLinux用ソフトウェアを導入してみた。 もちろん、Apacheやphp,ruby,julia,dart,g++など主要?な言語は導入済み。 MySQL環境 今回は、MySQLを導入し、それ用にDBクライアントも入れてみた。 DBeaverを試すことに。 Mainマシンでは、これまでも使用してきたが、最近はDBeaverを主に使っている。 本家からダウンロードして、インストールするだけだ。 $ sudo apt install ./dbeaver-ce_21.3.5_amd64.deb これで、完了。 起動してみる… 画面がおかしい… 画面がチラツキ、アイコンが壊れ、マウスカーソルが当たったところが点滅したり、表示とクリック箇所がズレていたり…。 なんだ? 他のソフトでは、こんな事は起きたことがないのに…。 DBeaverを再起動してみる。 一旦、Linuxを再起動してみる。 一向に、なおる気配がない。 あちこち、検索してみるものの、同様な症状の報告はない。 仕方なく、ChromeOS自体を再起動…。 変わらない。 むむむ…。 仕方ないので、アンインストールして、再度入れ直してみるが、治らない。 ChromeOSのバージョンを確認しようとしたら、更新が降ってきたので、インストール。 → ChromOS再起動 → Linux起動 → DBe...

ソースコードを読んで解決

些細なミスでハマった ある案件で、FuelPHPを使って開発していた。 ローカルマシンのApacheとMySQLを使った標準のWebアプリ。 ただ、今回はじめてまともにFuelPHPを使ったので、若干なれるのに手間取った。 さて、良い感じに仕上がってきて、本番環境に準備してデプロイすることに。 お客さんがこれまで使っているというSAKURA Internetのレンタルサーバを追加で借りてもらい、設定することに。 SAKURAサーバを使ったことがある人は分かると思うんだけど、MySQLが別サーバになっている。 でもって、契約してあるサーバからしか接続が出来ない仕様。 まぁ、これも理解できる。 そこで、FuelPHPのconfigにあるdb.phpを新規に編集する。 config-----------db.php  +- development--db.php  +- production---db.php 共通の設定などは、config直下のdb.phpに書いておき、開発用、本番用と別々の設定で運用できる。 共通のdb.php <?php return array(  'default' => array(    'type' => 'mysqli',    'connection' => array(      'host' => 'localhost',      'port' => '3306',      'database' => 'dbname',      'persistent' => false,      'compress' => true,    ),    'identifier' => '`',    'table_prefix' => '',    'charset' => 'utf8',    'e...

UTF8の指定ではまった

MariaDB+PHPにて PHPでDB上のデータを大量に処理するプログラムを書いていて、おかしな現象に出くわした。 1万件+42万件+43万件のjoinで、必要なもののみ取り出して、updateをかけるという手作業ではやる気にならない処理なので、サクッと書いてぶん回すしかない…。 ローカルでmysqlモニタを使用してSQLを叩くと、問題なく結果が返ってくる。 でもって、サーバ上で実行すると、結果がEmpty…。 あれれ? 試しに、phpmyadmin上でSQLだけ叩いてみる。 ローカルと同じ結果になる。 何かがおかしい。  :  : $mysqli = new mysqli("localhost",$username,$password); if($mysqli->connect_error){   print('<p>データベースへの接続に失敗しました</p>'.$mysqli->connect_error);   exit(); } $mysqli->select_db($dbname); $mysqli->set_charset("utf-8"); $sql="SELECT bill.bill_id,bill_item.bill_item_id,bill_item_detail.bill_item_detail_id,              bill.billing_id,bill.bill_month,bill.bill_date,bill.deposit_receive_date   FROM `bill_item_detail`   join bill_item on bill_item_detail.bill_item_id=bill_item.bill_item_id   join bill on bill.bill_id=bill_item.bill_id   WHERE `bill_item_detail`.`name` LIKE '繰越残高' AND  :  :   order by bill.b...

phpMyAdminの設定

イメージ
コンソールもいいけれど… もちろん、ネットワーク越しに使うので、コンソールでmysqlコマンドや、mysqldumpなどは普通に使っていますが…。 ちょこっとデータを修正したり、複数のテーブルを見比べたりするのに、CUIでは不便なこともあるので、phpMyAdminを入れることが多い。 もちろん、今時はパッケージマネージャが装備されているので、インストールは簡単。 ubuntuなら apt-get install phpmyadmin でサクッと入るし、CentOSなら yum で同様にインストールは完了する。 ところが、このインストールだけでは、phpmyadminの設定情報を記録してくれない。 最近、使用頻度も上がっているのに、他の作業しているとタイムアウトを起こして、再度ログイン画面に戻ってしまう。これは面倒。 そこで、有効期間を1440秒から→14400秒に変えておいたりする。 『環境設定は、現在のセッションでのみ有効です。この設定を永続的に有効にするには、phpMyAdmin 環境保管領域が必要です。』とエラーが表示され、セッションが切れると元に戻ってしまう。  そこに書かれているリンクを踏んでも、あまり親切には書かれていないのだ…。 まずはtableを用意 一応、ドキュメント見ながら作業をする。 「create_tables.sql」を使えってことなので、探してみる。 # find / -name create_table.sql /usr/share/doc/phpMyAdmin-x.x.x.x/examples/create_tables.sql に有った。(ちなみにCentOSの場合の結果) なので、こいつを食わせればOK。XAMPとかならディレクトリさえ分かれば、phpMyAdminからインポートもできるだろうけど、リモートではそんな訳には行かない。 なので、mysqlコマンドから実行。 $ mysql -u root -p > source /usr/share/doc/phpMyAdmin-x.x.x.x/examples/create_tables.sql これでOKかというと、まだ不足で、/etc/php...

MySQL WorkbenchでERRORを回避

イメージ
MySQLを使うのにあれば便利ですよね 以前は、phpmyadminを使ったりしていました。 ですが、DBをExportする時に、大きなサイズのテーブルは途中で切れてしまったりして、完全にバックアップが取れないという不具合が一向に直らないので、結局sshでmysqldumpを叩くことが多かった。 つい先日、同業の人が、mysqldumpが使用後、メモリ(キャッシュ?)を開放しないので、サーバのメモリが不足して喘ぐと愚痴っていました。  本当かどうかは別として、自分の環境では、mysqldumpで特に困った現象は起きていないのですが…。 どうせ、sshで作業するなら、MySQL Workbenchならssh越しに利用できたはず。 という記憶を手繰り・・・。設定してみることに。 id_rsaを指定して、ポートやらごにょごにょっと作業したら、サクッと繋がった。 Exportしてみると動作しない Error Unhandled exception: 'builtin_function_or_method' object has no attribute '__getitem__' this error occurs even if you try to backup a single table なんてダイアログが表示されて、Exportできないではないか・・・。残念。 と終わっていては、意味がないので、少し調べることに。 試してみると、動作しなくもない。 Optionsのところで、[Export to Self-Contained File]を選択すれば、落とすことはできた。ただ、すべてのデータを1ファイルにしてくれちゃうのは、Restoreするのに都合が悪い。 特定のテーブルだけ戻したりしたいわけで・・・。 [Export to Dump Project Folder]を選択すると、他のどの設定を変えても、Errorを吐いて動作しない。 Logを調べてみると、 01:08:00 [INF][wb_admin_control.py:server_polling_thread:497]: Monitoring thread runnin...

被害甚大で慌てたけど…

イメージ
やっちまったorz 会社のHPをWordPressを使って書き直していて、先週ひと通りの作業が完了したので、公開したんだ。その後、記事の追加を行い、ついでに様々なプラグインのテストをしようと思った。 本番の環境でテストしまくり、いじりまくるのは少々嫌なので、別にテスト用のWordPressを立ち上げ、DBを用意する。自前の鯖なら、どうってことはない作業なので、手作業で行うんだけど、会社のホスティングサーバしているサーバは、手作業の代わりに「簡単〜」というメニューが用意されていて、各種CMSやDBなんかが手軽にインストールできるようになっている。 WordPressのインストールで、MySQLにDBの設定もしてくれる。 ところが、この設定は、何も設定することができず、勝手にやってくれるので、少々困る。 データベース名がアルファベット+数字10桁で、設置するたびに数字がランダム?に変わってくれる。 テスト作業終了 各種プラグインのテストやら、cssの書き換えなんかで確認をした後に、テスト環境を削除することに。 WordPressを削除。DBは自分で別のメニューを辿って消せというので、削除。 この時、誤って本番環境を削除してしまっていたのだった…。 これに気づかず、本番環境でログインしようとして…。 問題は、DBを消したと思っていないために、あちこち設定をいじり倒して…。修復不能にしてしまったことにある。 サーバの自動バックアップはDBを対象外なので…。意味ないし…。 しばらく格闘したものの、すっぱり諦めて、新規に構築することに。 もともと、ローカルには素材も保存してあるし…。 と思ったけれど、投稿形式(ブログ形式)の記事は、直接フォームで作成しているのでバックアップがない。トホホ… 何か方法はないか? 作業を行いながらも、きっと良い方法があるはずだと…。 そういえば、プラグインで「XML Sitemap Generator」を突っ込んでいる。 こいつはページの構造が変わったり、投稿した場合なんかにsite mapを構築してくれるんだけど、確かGoogleなんかにpingを打っていたはず…。 ひょっとして、と思いGoogleで検索をかけてみた。すると、消えたはずのコンテンツへのリンクが表示されている。キャッシュ...