3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacにMySQL5.7をインストールして作業用Userと作業用DBを構築

Posted at

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             |
+--------------------+

参考

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?