20210802のMySQLに関する記事は2件です。

MySQLで月ごとのレンジパーティションを設定する。

はじめに データベースではパーティション化を行うことで、テーブルを分割してデータの格納場所を分けることができます。 今回は特定のDATEカラムを月ごとのレンジパーティション化にするSQLを記載致します。 既存のテーブルに適用する alter_partition.sql ALTER TABLE 'テーブル名' PARTITION BY RANGE COLUMNS('カラム名') ( PARTITION p202109 VALUES LESS THAN ('2021-10-01'), PARTITION p202110 VALUES LESS THAN ('2021-11-01'), PARTITION p202111 VALUES LESS THAN ('2021-12-01'), PARTITION p202112 VALUES LESS THAN ('2022-01-01'), PARTITION pmax VALUES LESS THAN MAXVALUE ); ※2022年1月1日以降のデータが入った時のことも考慮し、MAXVALUEも追加しています。 新規作成するテーブルに適用する カラムBを用いて月ごとのパーティション化を行います。 create_partition.sql CREATE TABLE 'テーブル名' ( カラムA varchar(128), カラムB date, カラムC int(10) ) PARTITION BY RANGE COLUMNS(カラムB) ( PARTITION p202109 VALUES LESS THAN ('2021-10-01'), PARTITION p202110 VALUES LESS THAN ('2021-11-01'), PARTITION p202111 VALUES LESS THAN ('2021-12-01'), PARTITION p202112 VALUES LESS THAN ('2022-01-01'), PARTITION pmax VALUES LESS THAN MAXVALUE );
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Dockerコンテナ内でmysqlコマンドが使えなかったときの話

はじめに Docker環境で開発中に、コンテナ内で「rails g model ~」や「rails db:migrate」により、テーブルを作成したので、作成したテーブルなどを確認するために、MySQLを起動させようとしたところ、以下のとおり、起動しませんでした。 $ mysql -u root -p bash: mysql: command not found あれ、MySQL入っているはずなのに、なぜだろう? 開発環境 ・Ruby on Rails 6.1.4 ・MySQL 8.0.25 ・Docker 20.10.7 ・docker-compose 1.29.2 原因と対応 私はrailsコマンドを使用するために、Dockerをバックグラウンドで起動させた後、次のコマンドによりコンテナに入って作業をしていました。 $ docker-compose exec web bash そうです、webコンテナ(=railsのコンテナ)の中で、mysqlコマンドを実行しようとしていたのです。 気を取り直して、webコンテナからexitし、以下のコマンドを実行します。 $ docker-compose exec db bash これでdbコンテナ(MySQLのコンテナ)に入ることができ、無事、mysqlコマンドが実行できるようになりました。 もちろん、コンテナに入らずに直接、次のコマンドを入力してもOKです。 (これなら、コマンドにコンテナ名が入っているので、最初から気がついていたような気もしますが…) $ docker-compose exec db mysql -u root -p おわりに 原因がわかれば何とも単純な話ですが、エラーが出るとあれこれ調べて、よくわからない方向へ行ってしまい、いつの間にか時間ばかりが過ぎているというのは、初心者あるあるかと思います。 同じことをやらかしてしまった人が、この記事にたどり着いてくれれば、嬉しく思います。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む