M1 Macでmysqlのconfigを発掘。無事OUT FILEできるようになる

1 min read読了の目安(約1500字

環境

  • M1 Macbook pro
    • Big Sur version 11.1

Homebrewの場所

Rosettaでターミナル開くように設定したりしていません。なんか結構深いところまでいじりに行った気がするので多分ちゃんとarm版が入ってます

まとめてくれている方がおられたので共有しますね

https://zenn.dev/ress/articles/069baf1c305523dfca3d

本題

何も設定いじっていないmysqlでテーブルからCSVファイル作ろうとしたら、こんなエラーが出ました

mysql> select * from actor into outfile '~/db/csv/actor.csv' fields terminated by ',' optionally enclosed by '"';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

検索すると、configファイルのmy.cnfを弄れと出てきました。はいはいやりますよってなりますが、

 % find /usr/local/Cellar/mysql -name "my*.cnf"
find: /usr/local/Cellar/mysql: No such file or directory

はい、私が確認する限り、Cellarはlocalにはありませんでした。brew installしたし、その下にあるだろ、とlsした結果、ありました

/opt/homebrew/Cellar 
bdw-gc		emacs		gnutls		jansson		libevent	libtasn1	m4		nghttp2		openssl@1.1	protobuf
c-ares		gettext		guile		jemalloc	libffi		libtool		mysql		node		p11-kit		readline
cask		gmp		icu4c		libev		libidn2		libunistring	nettle		nodebrew	pkg-config	unbound

my.cnfも見つかりました

% find /opt/homebrew/Cellar/mysql/8.0.23_1 -name "my*.cnf"
/opt/homebrew/Cellar/mysql/8.0.23_1/.bottle/etc/my.cnf

cnfファイルの編集

/opt/homebrew/etc/my.cnfにコピーしてきて

cp /opt/homebrew/Cellar/mysql/8.0.23_1/.bottle/etc/my.cnf /opt/homebrew/etc/my.cnf

secure_prev設定を追記(空欄が未設定になる)

secure-file-priv = ""

確認

ちゃんとOUT FILEできるようになりました

mysql> select * from actor_info into outfile '~/db/csv/actor_info.csv' fields terminated by ',' optionally enclosed by '"';
Query OK, 200 rows affected (0.19 sec)