質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

タイムゾーン

タイムゾーンは地球の各地域ごとに定義されている標準時間です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

3回答

2661閲覧

『.my.cnf』を編集してタイムゾーンをUTCからJSTに変更したい【Rails】【Mysql】

yastinbieber

総合スコア49

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

タイムゾーン

タイムゾーンは地球の各地域ごとに定義されている標準時間です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/09/10 02:15

編集2020/09/10 06:34

前提・実現したいこと

「.my.cnf」ファイルを下記のように編集してタイムゾーン設定(UTC→JSTへ)したいです

参考ページにて同様の質問があがっていたのでそれをもとに書いていきます。
考え方・やり方に関して間違っている点がございましたらご教示いただきたいです。

下記に実際に行った動作を書いていきます。

コード

①確認?

$ vi ~/.my.cnf
E325: ATTENTION Found a swap file by the name "~/.my.cnf.swp" owned by: ec2-user dated: Tue Sep 8 08:29:06 2020 file name: ~ec2-user/.my.cnf modified: YES user name: ec2-user host name: ip-172-31-40-212 process ID: 19134 While opening file "/home/ec2-user/.my.cnf" (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r /home/ec2-user/.my.cnf" to recover the changes (see ":help recovery"). If you did this already, delete the swap file "/home/ec2-user/.my.cnf.swp" to avoid this message. Swap file "~/.my.cnf.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

②該当ファイルの削除

delete the swap file "/home/ec2-user/.my.cnf.swp"

とあるのでまずこのファイルを削除すべきかなと考え下記のようなコードを入力しましたが変化なしです。
まずこれで削除できているのか疑問です。もしできていない場合はどのようにかけばよいでしょうか。

ec2-user:~/environment $ rm -f /etc/.my.cnf.swp ec2-user:~/environment $

③ディレクトリを移動し「my.cnf」ファイルの編集

ec2-user:~/environment $ cd /etc ec2-user:/etc $ ls -a . cloud dracut.conf.d gshadow java ltrace.conf nsswitch.conf pkcs11 rc.local shadow- udev .. containerd dumpdates gshadow- .java lvm ntp pki rc.sysinit shells update-motd.d acpi cron.d e2fsck.conf gss jvm magic ntp.conf pm request-key.conf skel vimrc adjtime cron.daily environment gssapi_mech.conf jvm-commmon mail openldap popt.d request-key.d smrsh virc aliases cron.deny ethers hibagent-config.cfg kdump-adv-conf mailcap opt ppp resolv.conf ssh wgetrc aliases.db cron.hourly exports hibinit-config.cfg kdump.conf man_db.conf os-release prelink.conf.d rmt ssl X11 alternatives cron.monthly exports.d host.conf krb5.conf maven pam.d printcap rpc statetab xdg amazon crontab filesystems hosts krb5.conf.d mercurial passwd profile rpm statetab.d xinetd.d anacrontab cron.weekly fonts hosts.allow latrace.conf mime.types passwd- profile.d rsyslog.conf subversion yum asound.conf csh.cshrc fstab hosts.deny latrace.d mke2fs.conf pear protocols rsyslog.d sudo.conf yum.conf at.deny csh.login gcrypt httpd ld.so.cache modprobe.d pear.conf .pwd.lock rwtab sudoers yum.repos.d audisp dbus-1 gdbinit idmapd.conf ld.so.conf motd php-5.6.conf rc rwtab.d sudoers.d audit default gdbinit.d image-id ld.so.conf.d motd.rpmsave php-5.6.d rc0.d sasl2 sudo-ldap.conf bash_completion.d depmod.d git.conf init libaudit.conf mtab php-5.6.ini rc1.d screenrc sysconfig bashrc dhcp gnupg init.d libreport my.cnf php.d rc2.d securetty sysctl.conf blkid DIR_COLORS GREP_COLORS inittab libuser.conf nanorc php.ini rc3.d security sysctl.d cgconfig.conf DIR_COLORS.256color groff inputrc localtime netconfig phpMyAdmin rc4.d selinux system-release cgrules.conf DIR_COLORS.lightbgcolor group iproute2 login.defs NetworkManager php-tcpdf rc5.d services system-release-cpe cgsnapshot_blacklist.conf docker group- issue logrotate.conf networks php-zts-5.6.d rc6.d sestatus.conf terminfo chkconfig.d dracut.conf grub.conf issue.net logrotate.d nfsmount.conf php-zts.d rc.d shadow tmpfiles.d ec2-user:/etc $ sudo vi /etc/my.cnf

下記画面に変わったので参考サイトにあるように
「escキー」を入力した後に「 i 」を入力し[mysqld_safe]以下に「timezone = JST」を追記。

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid timezone = JST ~

この場合追記した内容の上にある2行は消すべきなのでしょうか?

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid の部分

※ちなみにこのあとMysqlが接続できなくなってしまい

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

と出てしまったため消すべきかお聞きしたいです。

編集後、『再度「escキー」を入力した後に「 : 」「 w 」「 q 」と順番に入力してENTERを押下。保存。』

####④保存が完了したので再起動する

ec2-user:/etc $ mysql.server reload bash: mysql.server: command not found

ここでもエラーが出てしまい再起動できません。やはり②の部分で2行を消していないことが影響しているのでしょうか。

<hr> ご確認いただきありがとうございます。 実際に打ったコードをベースにご質問させていただきました。

お手数おかけしますがおかしな点等ございましたらご回答よろしくお願い致します。

補足情報(FW/ツールのバージョンなど)

Rails 5.2.4.3
ruby 2.5.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/09/10 02:18

「どのようにファイルに対し編集するのかわからない」とは、「内容」についてでしょうか、「手段」についてでしょうか?
yastinbieber

2020/09/10 02:21

エラーによりメモ段階のものが送信されてしまいました。申し訳ございません。 本来お聞きしたい内容を再度修正し変更しておりますのでご確認いただけますと幸いです。
hentaiman

2020/09/10 03:39

> がこれが何を示すものなのかよくわからず、 読んだのに分からないという事ですか?それならこういう理解の仕方をしたが、こういう対応方法で良いのか?という質問に改めてもらえれば回答出来ます。
yastinbieber

2020/09/10 06:35

申し訳ございません。再度諸々編集し挙げさせていただきました。 再度ご確認いただけますと幸いです。
hentaiman

2020/09/10 06:39

最初の質問の時点と問題点が変わってますね mysql.server: command not found これはコマンドが間違ってるだけです mac(brew)環境で打ちそうなコマンドに見えますが、ec2でも有効なコマンドとして登録されてますか?
yastinbieber

2020/09/10 06:47

最終的に行いたい点は同じになります。 最初に質問させていただいたときは進め方が全く理解していませんでしたが、修正させていただいた際は参考になるページを見つけたのでそちらをベースに進めさせていただきました。 しかしながら実際にUTCからJSTへと変わらなかったため依然ご質問を継続させていただいております。 > mysql.server: command not found この部分は勘違いしておりました。 sudo survice mysqld start で問題なく起動しました。
guest

回答3

0

色々見ましたが、どこを変更するかよりも
どう変更するかなのかと思いました。

time_zone = 'JST'
ではなく、

time_zone='JST'

でしょうか。

あと、英文を読む限り
システムのタイムゾーンに同期させたければ
time_zoneを指定し、
そういうシステム依存の指定が無いなら、
default-time-zoneを使用しろ・・
と、
私には読めます(間違っていれば済みません)

よろしくお願いします。

投稿2020/09/10 14:21

hana_yama_san

総合スコア923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yastinbieber

2020/09/10 14:28

ご回答ありがとうございます。 おそらくタイムゾーンデータのインポートが必要だったようです。 ご丁寧にありがとうございます。
guest

0

ベストアンサー

timezone = JST

ではなくtime_zoneです

②該当ファイルの削除

vimのスワップは不要なら削除して正解です。削除するまでずっとメッセージが出ます。

反映されたかどうかをどのように確認したか分かりませんが、mysql再起動後にshow variables like '%time_zone%'で確認しましょう。

投稿2020/09/10 07:06

hentaiman

総合スコア6415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yastinbieber

2020/09/10 08:25

ありがとうございます。該当箇所を修正してDB再起動してみました。 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] time_zone = 'JST' log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 上記に追記し、サーバー再起動までしましたが、 show variables like '%time_zone%'; で確認したところ +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | UTC | | time_zone | SYSTEM | +------------------+--------+ 2 rows in set (0.00 sec) 依然UTCのままです。 どの部分で上手くいっていないのでしょうか。 もしおわかりでしたらご教示いただきたいです。
hentaiman

2020/09/10 08:33

動作しているのは本当にmysqld_safeですか? 分からなくてもとりあえず以下に個所を書いて再起動してみてください [mysqld] time_zone = 'JST'
yastinbieber

2020/09/10 13:36 編集

> [mysqld] time_zone = 'JST' 上記編集させていただき、 sudo service mysqld restart にて再起動させていただいたところ ec2-user:/etc $ sudo service mysqld restart Stopping mysqld: [ OK ] MySQL Daemon failed to start. Starting mysqld: [FAILED] というふうに出てしまいました。
yastinbieber

2020/09/10 14:24

http://reoxo.hatenablog.com/entry/2017/10/27/144736#f-84a4a25b 上記のサイトを確認して行ったところ mysql> show variables like '%time_zone%'; +------------------+------------+ | Variable_name | Value | +------------------+------------+ | system_time_zone | JST | | time_zone | Asia/Tokyo | +------------------+------------+ 2 rows in set (0.00 sec) 無事変更されました。 細かくご教授いただきありがとうございました。
guest

0

まずこれで削除できているのか疑問です。

削除に成功したとき、あるいは元からファイルがなかったときは何も出ません

やはり②の部分で2行を消していないことが影響しているのでしょうか。

無関係です。

投稿2020/09/10 06:48

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yastinbieber

2020/09/10 14:26

ご回答ありがとうございます。 引き続きよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問