前々回から何回かに分けて,mysql.
テーブルについて説明しました。今回は
第17回から引き続き,
筆者がCentOS 6.
$ sudo yum install -y http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm $ sudo yum install -y --disablerepo=mysql57-community --enablerepo=mysql56-community mysql-community-server $ sudo service mysqld start
root@127. 0.0. 1とroot@localhostは別アカウントか
前々回説明した通り,
TCP経由でローカルホストに接続する場合は
上記の説明が原則ではあるのですが,
TCP経由で接続する
まずは原則通り動くケースとして,/etc/
の[mysqld]
セクションにskip_
オプションを追記してMySQLを再起動します。
$ sudo vim /etc/my.cnf .. [mysqld] skip_name_resolve .. $ sudo service mysqld restart
この状態でTCP接続を試してみましょう。MySQLサーバが動いているマシン上で明示的にTCP接続を指定するためには,--protocol=tcp
オプションまたは-h127.
オプションを使用します。
$ mysql -uroot -h127.0.0.1 mysql> SELECT current_user(); +----------------+ | current_user() | +----------------+ | root@127.0.0.1 | +----------------+ 1 row in set (0.00 sec)
ちなみにIPv6形式で-h::1
と指定した場合,
$ mysql -uroot -h::1 mysql> SELECT current_user(); +----------------+ | current_user() | +----------------+ | root@::1 | +----------------+ 1 row in set (0.00 sec)
UNIXソケットで接続する
同じくUNIXソケット接続ではこのようになります。ローカルホストへの接続は,-h
オプションで明示的にIPアドレス形式を取るか,--protocol=tcp
オプションを指定しない限り,
$ mysql -uroot mysql> SELECT current_user(); +----------------+ | current_user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec)
root@localhostアカウントを削除する
この状態で,DROP USER
してみましょう。
mysql> DROP USER root@localhost; Query OK, 0 rows affected (0.01 sec)
これで,
$ mysql -uroot -h127.0.0.1 -sse "SELECT current_user()" root@127.0.0.1 $ mysql -uroot -sse "SELECT current_user()" @localhost
TCP接続は変わらずroot@127.
匿名アカウントはDROP
したことで,