mysql

39 件の記事

2023
2021

Github ActionsでMySQL8を使う

ちょっとハマったのでメモしておきます。 基本的にはサービスコンテナを使ってmysql8を動かすGithub Actionsの例 MySQLの接続先を0.0.0.0 or 127.0.0.1にすることによってうまくMySQL8に接続できた。 例: name: CI on: push: branches: - main j…

2020

GithubActionsでMySQLが動かなくなった件

2ヶ月ぐらい放置してたプロジェクトのGithub Actionsでテストを走らせたらMySQLがエラーになって落ちてた・・・。 ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111) こんな感じにMySQLに接続できないというエラーが…

2018

Doctrine2-Spatialを扱うときの注意点

Doctrineで緯度経度を扱いたいときに便利なライブラリ「Doctrine2-Spatial」 GitHub - creof/doctrine2-spatial: Doctrine2 multi-platform support for spatial types and functions. 基本的な使い方は以下の…

2017

MySQLのgeometry型カラムに対してselectした結果でupdateする

別に大したことじゃないんですが、5.6ぐらいからgeometry型使えるようになっていて、5.7.14ぐらいからは対しかInnoDBでもいけるようになっていたので、適当にdoubleで登録してたのをgeometry型に切り替えました。 で、データの更新どうしようかなぁーっておもってて、SELECTした結果でUPDATE…

2013

mysqlでindexの貼り方の検討がつかない時にやる事

最近mysqlなDBのクエリーの見直しとかindexの見直しにひーひー言ってるポリドッグです。 上長にはindexの使われ方を想像しながら、indexを貼っていくんだ的な事をいわれて「(゚Д゚)ハァ」みたいに思ったわけです。 僕みたいなSQL嫌いなエンジニアからしたらイミフみたいな感じだったわけです。 そんなときに弊社…

Innodbが壊れた時になんとかする方法

こんばんわ。最近電車通勤になって正直つらいなぁーと思っている僕です。 今日はinnodbが壊れてmysqlが起動しない的なマジどんまいな場合の対処法をご紹介します。 まずはセーフモードで起動する $ mysqld_safe --user=root & まあこれで起動しないなんてことはよくあります。 innodb_for…

MySQL5.6をrpmでアップグレードしてみますた。

ぶっちゃけ量産型ザク的なPHPerから脱出したいポリドッグです。 僕は相変わらず元気です。 さてさて、MySQLも正式的に5.6がリリースされたということで、僕のサーバにぶち込んだMySQL5.6.9_rc1ともおさらばする覚悟を決めました。 気合い入れてMySQL5.6.10にするお! 環境はさくらなVPSでディスト…

2012

MySQLdbでTRUNCATE TABLE文を発行したら、commitされなかったでござるの巻き

本来TRUNCATEはトランザクションをサポートしてないのでcommitされないってのはおかしいですね。。。 すいません、無知なもので。。。 んでまあ前回の「mysqliでTRUNCATE TABLE文を発行したら、commitされなかったでござるの巻き」の続きなんですが、結局pythonでためしたところ同じ結果でした…

mysqliでTRUNCATE TABLE文を発行したら、commitされなかったでござるの巻き

PHPでのお話です。 マスター/スレーブまでカバーしたDBライブラリを使用しているときに、なぜかSELECTしたあとTRUNCATE文を発行したら、なぜか永遠に処理が終わらないという現象に遭遇しました。 SELECTはスレーブに接続して、INSERT,UPDATE,DELETEはマスターに接続するという単純なライブラリ…

Nagiosでcheck_mysqlが動かなくなったときの対応

Nagiosを使用している鯖のmysqlをアップデートしたら、check_mysqlが動かなくなりました。 mysqlclient15.soがないからダメみたいでした。 まあyumとか使ってepelとかremiとか使っちゃうとよく起きる現象なのかとも思います。(ソースから入れろって突っ込みはなしでお願いします… もとも…

cakePHPのmodelでFORCE INDEXを使用する方法

なんかうまくINDEXが使用されない箇所があって、たまにFORCE INDEXが使いたくなる事ってあると思います。 cakePHPだと、FORCE INDEXを書く方法が無いように見えますが、意外と簡単にFORCE INDEXを書く事ができます。 基本的にテーブル名の後ろに文字列入れられればいいので、実はjoinsに記…

2011

ない場合insert、ある場合update

なんかしらアプリつくってると、そのテーブルにそのユニークキーでデータが存在ない場合はinsert処理をして、データが存在する場合はupdateしたいってときがあると思います。 ちなみにcakePHPの場合はsaveすればおkって話なんですが、cakePHP使わない場合そうすればいいのかなーっておもってたら「ON DUP…

2010

MySQLで一般クエリログを出す

cakePHPだとdebugを2にすればsql文を画面に出力してくれるんでいいんですが、Zend_Db使っているときは意図的に出力してあげないといけないので、不便です。 そしたらお隣の人からログだせば良いといわれたので、方法を残しておきます。 SET GLOBAL general_log = 'ON'; ちなみに「my…

MySQLでスレーブが止まっているか確認する

MySQLのスレーブが同期されてないなーとおもってログ見たら「Slave SQL: Error ‘Duplicate entry…」みたいなのが書いてありました・・・。 原因としてはSlaveにInsertクエリーがなげられてたからっぽいんですが・・・。 で、スレーブがとまっているか確認するには以下の方法を使う SHO…

InnoDBとMyISAMを混同させるときの注意点

MySQLのInnoDBで外部キー制約をMyISAMに対して行った場合、insertするとエラーになってなやまされました。 何回インサートしても外部キーが指定されてないてきなメッセージが・・・。 状況的にはこんな感じです。 classテーブル class_id <td> int autor increment </td…

utf8_general_ci と utf8_unicode_ciの違い

やはりまだMySQLとかDBまわりは勉強不足みたいです。 utf8_general_ciとutf8_unicode_ciの違いってなんだっけかなぁーとか忘れ気味だったので、調べてみました。 utf8_general_ci : 探索時に英字の大文字小文字を区別する。(正確性重視) utf8_unicode_ci : 探索…

MySQLで置換して更新させる方法

DBに入っているデータを置換して更新したいときって、DBから取り出して、正規表現でがんばって置換して、またアップデートってやってしまうのですが、実はちゃんと置換して更新させる方法あるんですね。 僕も知りませんでした・・・。 UPDATE `テーブル名` SET 置換したいカラム名=REPLACE (置換したいカラム名,…

パフォーマンスの改善

なんか最近WordPressが重くなってきたので、いろいろとサーバ側の設定を変えてみました。 とりあえず、MySQLのクエリキャッシュを有効にする vi /etc/my.cnf [mysqld] query_cache_limit=1M query_cache_min_res_unit=4k query_cache_s…

2009

Servletの文字化け問題

ServletでPOSTの値を受け取ってMySQLにinsertするプログラムを書いていたのですが、日本語の値が文字化けていました。 かなり悩んでMySQLの設定をいじってみたりしましたが、どうしても文字化ける・・・ 悩むこと4時間・・・。 いろいろと試してみたけど解決できない。 そんなとき、ふと、思いついたのです。 …

MySQLのユーザー作成とか

ついつい忘れてしまうので、メモ ユーザーを作成する 全権限 GRANT ALL PRIVILEGES ON *.* TO ユーザー名 IDENTIFIED BY 'パスワード' WITH GRANT OPTION; 一部の権限のみ与える GRANT INSERT,SELECT,UPDATE ON *.* TO ユーザー…

MySQLのINTEGERとかTINYINTとか

今日ふとした会話から、INTEGERとTINYINTの違いってどうなのって話をしていました? int(1)とtinyintってなにがちがうのか? 結局のところ使用するバイト数が違うのね。 int(1)にしても4バイト使ってしまうのね。それに比べてtinyintは1バイトしか使わないのか。 せっかくだから、バイト数の違い…

cakePHP1.2 さくらインターネットでMySQLが文字化ける

さくらインターネットの共有サーバの環境にcakePHPをうpしたら、MySQLが文字化けました。 なぜに!?とかおもいつつ、MySQLの設定もutf8_unicode_ciになってたし、PHPも、HTMLもUTF-8だったんですが、なぜか文字化ける。。。 set names utf8とかやれば治るんだろうなとか思いつつ…

2008

MySQL ALTER TABLE

久しぶりの授業メモでございます。 今回はMySQL での ALTER TABLEの使い方です。 あくまで授業で習った範囲なので、足りない部分があったらコメントで誰か教えてください。 ALTER TABLEはいろいろと操作できるのですが、基本的に共通する構文は ALTER TABLE テーブル名 変更したい命令文``` …

SQLテーブル情報の表示

絶賛夏休みボケ中です。 とりあえず、忘れていたことをメモします。 テーブル情報の表示 show columns from テーブル名;```