せめて開発環境ではAdminer使ったら?

落ち込むプログラムのキャラクター

プロジェクトに参画してて他のエンジニアの人の仕事眺めてるとですね、サーバにSSHで接続してゴリゴリSQLクエリ書いてる人、いるんですよ。いやわかりますよ、僕だって古い人間ですから、クエリ組み立てられることの大事さとか、コマンドで打ち込むことでわかることがあるとか。でもさーどんなにひいき目に見たって、DBの出力データをコンソールで見るのは無理がないですか。思考とキーボードが有線で直結してるようなスーパーハカーならいいですけど、通常はざっくりとした把握で終わるだけだと思うんですよ。視覚って大事ですよ。

続きを読む

【MySQL】エラー1236でレプリケーションが停止している場合の修正方法【メモ】

MySQL

staging環境のデータベースに設定されているレプリケーションが何かの拍子に停止してしまっていた。本番環境では問題なく動作しているので、最近の出来事であり、かすかな記憶でマスターで実行しなくてはならないテーブル変更のクエリを誤ってスレーブで実行してしまったような気がする。「レプリケーション」の意味や意義はわかっているけれど、設定については詳しくないのでちょっと焦った。

続きを読む

既存の静的ファイルはS3に移行【#np2020】

WordPress Logo

MovableTypeからWordPressに移行するにあたり、画像も移行しよう(MovableTypeの「アイテム」からWordPressの「メディア」へ)かと思いましたが、URLの切り替えが面倒すぎるし、メディアの中で収拾が付かなくなるのは火を見るより明らかなのであえて移行しないことに決めました。もちろんWordPressで新しく書く記事についてはWordPressのメディアを利用して管理しますが、既存記事の画像は全てAWS S3に入れてしまうことに。

続きを読む

【メモ】ローカルのMySQLにrootでログイン出来なくなったら

mysql_logo.png 動作確認のためにVagrant上にインストールしたMySQLにrootでログイン出来なくなってしまいました。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
メインで使っていない開発環境の方なので、きちんとパスワードを設定したかも疑わしい。普段使っている限りではrootでログイン出来なくても別に困らないんですが、DBユーザーに十分な権限が割り当てられていなくて、テーブル作成すらできないことがわかったのでなんとかしないといけない。 仕方が無いので、次の手順でrootのパスワードを再設定し、ローカルホストからのアクセスに権限を付与したたところ、ログイン出来るようになりました。 (パスワードを設定したつもりでしてなかったのかも)

環境

  • CentOS 7
  • MySQL 5.6

手順

$  sudo vi /etc/my.cnf
mysqld に skip-grant-tables を追記
$ sudo service mysqld restart
$ mysql -u root
mysql > use mysql;
mysql > UPDATE `user` SET `authentication_string` = PASSWORD('password') WHERE `user` = 'root';
mysql > flush privileges;
mysql > grant all privileges on *.* to root@localhost identified by 'password' with grant option;
mysql > flush privileges;
mysql > quit
$ sudo vi /etc/my.cnf
skip-grant-tables を削除
$ sudo service mysqld restart
$ mysql -u root -p

嵌まった点

  • CentOS7で上手くMySQLをセーフモードで起動出来なかったので、my.cnfに追記しました。多分なんか方法があるはずです。
  • パスワードを設定したあと、権限の変更を行おうとしたら、skip-grant-tablesが設定されてるからダメだと怒られました。が、 flush privileges してから変更したら上手く出来ました。それでいいのか……
なにはともあれ、何とかログイン出来るようになってよかった。そもそも、ログイン用のユーザーに適切な権限を設定しておけばこんな面倒なことにはならなかったんですけどね。まあいいか。ローカルだし。

続きを読む