macにはhomebrewが入ってる前提で進めます。
MySQL5.7のインストール
$ brew update
$ brew install mysql@5.7
インストール完了
初期設定
pathを通す
$ brew info mysql@5.7
こちらの内容を参考にpathを通す
$ vi ~/.bash_profile
最後に追加
export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"
export PKG_CONFIG_PATH="/usr/local/opt/mysql@5.7/lib/pkgconfig"
.bash_profileを変更したので反映
$ source .bash_profile
設定ファイルの場所確認
$ mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
my.cnfを編集
$ vi /usr/local/etc/my.cnf
# Default Homebrew MySQL server config
[mysqld]
Only allow connections from localhost
bind-address = 127.0.0.1
# utf-8
character-set-server = utf8
# password setting
default_password_lifetime = 0
$ mysql.server start
Starting MySQL
. SUCCESS!
作業用DB作成
mysqlにrootでログイン
$ mysql -u root -p
現状のDBを確認
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
これらはsystemが利用しているDBなので消したらダメ。
作業用DBを作成
mysql> create database testdb;
testdbが作成できた
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| testdb |
| sys |
+--------------------+
作ったDBを削除
mysql> drop database testdb;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
systemが利用しているDBは普通に消せてしまうが、上記でも書いたように消してはダメ。
もし、消しちゃったら brew reinstall mysql@5.7
した方が早い。
ちなみにuser作成してログインしようとしても
mysql.user
がいない的なエラーが出るようになる
ERROR 1146 (42S02): Table 'mysql.user' doesn't exist
作業用User作成
今回はbind-address = 127.0.0.1でlocalhostからしかアクセスしないようにしてある。
この設定がない場合はuserに@localhostをつけて設定していく。
最初のuser作成はrootで行う必要があるので、
mysqlにrootでログイン
mysql> create user dbuser01 identified by 'password';
mysql> create user dbuser01@loalhost identified by 'password';
作業対象のDBに権限を与える
mysql> grant all on testdb.* to dbuser01;
参考) ユーザーを削除
mysql> drop user dbuser01;
mysql> drop user dbuser01@loalhost;
ユーザーを切り替えるためにroot状態からログアウト
mysql> quit
さっき作ったDB Userでログイン
$ mysql -u dbuser01 -p testdb;
現在選択しているUserを確認
mysql> select user();
+------------------+
| user() |
+------------------+
| dbuser01 |
+------------------+
接続できるDBを確認
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| testdb |
+--------------------+
参考