(この記事は 地平線に行く とのマルチポストです) 本番環境でやらかしちゃった人 Advent Calendarで、このパターンのやらかしはなかったのでキーボードを叩くことにしました。 番外編のつもりでお楽しみください。 この記事が、新たな障害発生を防ぐことにつながれば幸いです。 何をやったのか ある日、ちょっとした調査のために本番データベースのデータを確認することになりました。 (個人情報が格納されているようなシステムではなかったので、必要であれば本番データベースへのアクセスが許されていました) もしメンテナンスがあればそのタイミングでやればよかったのですが、直近では特に予定はないとのことでした。そのため、システムが動いている状態のまま作業をすることにしました。 ごく単純な SELECT を実行するだけのつもりだったので、システムに影響がないと判断したためです。 その際、万が一コピペをミ
試したいことがあったので、CakePHPの環境を作っていたらデータベースに接続できなくて困った。 環境 Windows7 CakePHP 3.4.13 PHP 5.6.31 MySQL 5.1.72 CakePHPをインストールをする。config/app.phpファイルをMySQLに接続できる状態にする。そしてbin/cake serverを実行してから にアクセスするとDatabaseの箇所がエラーになっている。 CakePHP is NOT able to connect to the database. Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP extension or unmet dependency 調べてみるとPHPのmysqlndが有効になっていないからという
SSHトンネルでアクセスする場合 (1)plink.exeをダウンロードする http://www.chiark.greenend.org.uk/~sgtatham/putty/ >Download>plink.exe (2)plink.exeをコマンドプロンプトから以下の記述で起動する。(plink.exeのパス、ユーザ名等は環境に合わせて編集する) "C:\Program Files\...\plink.exe" -L 3306:localhost:3306 ユーザー名@DBサーバ名 うまくいってれば Store key in cache? (y/n)ときいてくるので y + Enter これでレジストリにkeyが作成されます。これをHeidiSQLが使うようです。 しばらく待つと ユーザー名@アクセス先サーバ password:のようにパスワードをねだってくるので入力。 exitと入
以前、MySQLの重さの原因はDNS逆引きだった という記事を書いたのですが、それを読んでmy.cnfにskip-name-resolveを設定したという後輩から「DBに接続できなくなった」という問い合わせを受けました。 話を聞いたところ、MySQLにローカル接続用のユーザを追加するとき、MySQL 権限テーブルに「localhost」と書いたとのこと。 こんな感じ grant all privileges on DB.* to userid@’localhost‘ identified by ‘hogehoge’; 記事にも書きましたが、skip-name-resolveを使うとホスト名の解決を行わなくなりますから当然、ローカル接続も接続元が「localhost」ではなく 127.0.0.1 として扱われます。 なので、MySQLをインストールしたての時など@127.0.0.1なユーザが
果たしてGitLab.comで何が起きたのでしょうか? これまでの経緯をまとめました。 スパムによるトラフィックのスパイクからレプリケーションの不調へ GitLab.comは今回のインシデントについての詳細な経過を「GitLab.com Database Incident - 2017/01/31」で公開しています。また、もう少し整理された情報がブログ「GitLab.com Database Incident | GitLab」にも掲載されています。 これらのドキュメントを軸に、主なできごとを時系列に見ていきましょう。 1月31日16時(世界協定時。日本時間2月1日午前8時)、YP氏(Yorick Peterse氏と思われる)はPostgreSQLのレプリケーションを設定するためにストレージの論理スナップショットを作成。これがあとで失われたデータを救う幸運につながります。 1月31日21時
サーバーのエラーを検知したので確認してみると、mysql のログファイルに下記のようなエラーが出ていました。 どうやら WordPress で使用しているデータベースの wp_options というテーブルの読み込みでエラーが発生しているみたいです。 150102 23:20:17 [ERROR] Got error 127 when reading table './wordpress/wp_options' 調べてみると、テーブルが破損した可能性が高いらしい… ということで、テーブルを修復する手順を紹介します。 ※CUI 上で操作していますが、SQL 文さえ実行できればよいので、phpmyadmin 等でも修復可能です。 Mysql の破損したテーブルを修復 mysql にログイン #mysql にログイン sudo mysql -u root -p データベースの選択 mysql>u
ダンプリストア時にAccess denied; you need (at least one of) the SUPER privilege(s) for this operationMySQL
全然違います windows環境でCygWin入れてると怒られますよね? ※ Linuxでもとても難解な問題が出てくるので環境依存関係無いです(バグです) mysql -uroot -p して怒られます。 ekaneko@hoge ~ $ mysql -uroot -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2) ekaneko@hoge ~ $ mysql -h 127.0.0.1 -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 22 S
SELECT文の小数点の乗算で変な挙動になってつまづいたのでメモ。 バージョン:mysql Ver 14.14 Distrib 5.6.23, for linux-glibc2.5 (x86_64) using EditLine wrapper テーブル CREATE TABLE hoge (id varchar(5), group_id varchar(5), value double); INSERT INTO hoge (id, group_id, value) VALUES ('A1', 'A', 0.0001234567); INSERT INTO hoge (id, group_id, value) VALUES ('A1', 'A', 0.0001111111); INSERT INTO hoge (id, group_id, value) VALUES ('A1', 'B'
MySQLでの「Access denied for user ‘root’@’localhost’ (using password: NO) 」への対処 MySQLをインストールした直後に、私も遭遇しましたが、rootユーザの権限設定がされていなく、下記のようなエラーが発生することがあるようです。 [root ~]# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) ここでは、その場合の対処方法を整理しておきます。 1.MySQLの停止 MySQL(mysqld)が稼働している場合には、一旦停止します。 [root ~]# service mysqld stop mysqld を停止中: [ OK ] 2.オプション付きで起動 MySQLを–ski
MySQLで使っているデータベースを表示する。 mysql> select database(); +------------+ | database() | +------------+ | mydb | +------------+ 1 row in set (0.00 sec) MySQLでテーブルの作成 CREATE TABLE mytable ( contact_id INT NOT NULL AUTO_INCREMENT, last_name varchar(30) default NULL, first_name varchar(20) default NULL, email varchar(50) default NULL, gender char(1) default NULL, interests varchar(100) default NULL, PRIMARY K
それほどDBに詳しくないアプリエンジニアが何かトラブった時にすぐさま行動して問題把握できるようになる情報を列挙しておきます。 開発時、障害時の対処療法やちょっとした定期監視方法などを対象にしています。 抜本的な対策などはインフラエンジニアさんにお任せしたほうがいいと思います。 DBはいろんな意味でこわいんでできれば触りたくないです>< 事前確認 MySQLサーバーのシステム設定値を確認しておく 以下のようにサーバーのシステム設定値を確認できます。 mysql> SHOW GLOBAL VARIABLES; # ワイルドカード(%)を用いた絞り込み mysql> SHOW GLOBAL VARIABLES LIKE 'performance_schema%'
何か変なqueryをMySQLに投げてしまって 2012-05-26 18:23:21 Error: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`test`.`user_logs`, CONSTRAINT `user_logs_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)) みたいな感じでPDOExceptionが発生した場合に、どんなSQLを実行したのかがわからなくて困ったので調べた。 debugモードであればqueriesLogに保存されてそれを覗けばわかるのだけど、本番だとqueriesLogには保存されないのでそれだと
'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY000]: General error' とは 1つのメソッド内で複数の$db->query()を実行すると、下記のようなエラーが出ることがあります。 exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY000]: General error: 2050 ' エラーが出るかでないかは環境によっても異なるようで、 例えばWindowsサーバでは出ないけど、Linuxサーバだと出るということがあるようです。 PHPのマニュアルには以下のようにあります。 PDO::query() を次にコールする前に結果セット内の全てのデータを取得しない場合、そのコールは失敗します。 PDOStatement::closeCu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く