ArchiveからOSバージョンにあうDMGパッケージをダウンロードする.
macOS 10.14のMojaveは8.0.18.
インストール後、bash_profileにパス(/usr/local/mysql/bin)を追加する
export PATH="/usr/local/mysql/bin:$PATH"
反映は、
source .bash_profile
パッケージで入れた場合
システム設定にMySQLアプリの設定があるのでその中で停止できる
また、自動起動のオンオフもある
brewで入れた場合 開始
brew services start mysql
停止
brew services stop mysql
mysql -u [ユーザ名] -p
パスワードを聞かれるので入力する.
mysql -u [ユーザ名] -p [データベース名]
mysql -u root -p -e "select ... from tbl1" [database名] --batch --silent
mysql -u root -p [database名] < [sqlファイル]
connect [データベース名]
describe [table_name];
show tables;
show databases;
create database [db名];
create table table1_bak as select * from table1;
CONVERT_TZ(current_timestamp, 'UTC', 'Asia/Tokyo')
/usr/local/mysql/my.ini などに書く。
[mysqld]
max_allowed_packet=128M
AWS RDSなどはコンソールから設定する。 Macはシステム設定にMySQLがあり、そこで設定したりする。
SHOW GLOBAL VARIABLES LIKE 'max_connections';
一般的にはmax_connectionsのデフォルト値は151。この値は設定ファイル(通常はmy.cnfまたはmy.ini)で確認および変更することができる。
AWS RDSの場合は、DBInstanceClassMemory/12582880で計算されて設定されるらしい。
SHOW VARIABLES LIKE 'max_connections';
show status where `variable_name` = 'Threads_connected';
SHOW VARIABLES LIKE 'max_allowed_packet';
デフォルト32M。LONGBLOBなどを使う場合は大きくする必要がある。
rollbackで確認したいときは、set autocommitを実行して、start transactionする必要がある。
set autocommit = 0;
start transaction;
update tab1 set col1 = 'hoge' where key1 = 'key-1';
rollback;
commitはcommitでよい
pythonでmysqlを使うライブラリはいくつかあるよう(mysqlclient, MySQL-Python, pymysql)だが、mysqlclientを使ってNameError: name '_mysql' is not definedのエラーが出た場合は、シェルに以下の環境変数を追加したら解消した.
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$PATH"
mysqlにログイン
mysql -u root -p
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
newpasswordは空にもできる
このあとサービスを再起動する
mysql8.0からパスワードの認証方式が違うらしい。
一部のライブラリで接続できない事象が発生。(VSCodeプラグインなどでも発生する)
caching_sha2_passwordが新しい認証方式。
mysql_native_passwordにすると接続できるようになる。
以下で変更する。(mysqlのuserごと)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'