MySQLでファイルを読み込ませて実行する方法

MYSQLを直接操作する時に、MYSQLに直接コードを書き込まないで、別にファイルを用意してそのファイルにコードを書いて実行したい、と言う場合がある。

今回は、MYSQLでファイルを読み込ませて実行する方法を紹介していく。

環境

CentOS 7.5。Linuxであれば、記事の通りに行えば上手くできると思う。

1,ファイルの絶対パスをチェックする

まずは読み込ませたいファイルの絶対パスを知るために、絶対パスを知りたいファイルがあるディレクトリに移動して、以下のコマンドを実行する。

readlink -f file.sql

参考記事:linux - How to get full path of a file? - Stack Overflow

ファイルのパスを検索するコマンドとしてfindが有名だが、1つのファイルのパスだけ知りたい場合は、readlinkの方が使い勝手が良い。

2,MySQLのデータベースを開く

次にMySQLにログインして、use sample等のコマンドで適当なデータベースを選択しよう。

そしてファイルを実行したい場合は、以下の様にすると良い。

source ファイルの絶対パス

また、以下の書き方でも実行できる。(こっちの方が簡潔で良い)

\. 絶対パス

ポイントとなるのは、コンマの方が後に書くこと。

参考記事:MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.5.1.5 テキストファイルから SQL ステートメントを実行する