Docker 설정
설치방법
- 리포지토리(Repository): https://hub.docker.com/_/mysql/
- 사실 설치방법은 위의 리포지토리에 잘 적혀지 않습니다. 버전은 latest가 아닌 5.6을 기준으로 합니다.
이미지 가져오기
데몬으로 실행하기
- id: root / pw: my-secret-pw
mysql CLI 설치 with brew in macOS X
$ brew install mysql
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
ace beagle gmsh pulumi tomcat
armor crc32c logstash sourcekitten xtensor
==> Downloading https://homebrew.bintray.com/bottles/mysql-8.0.12.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mysql-8.0.12.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/mysql/8.0.12/bin/mysqld --initialize-insecure --user=namo --basedir=/usr/local/Cellar/mysql/8.
==> Caveats
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -uroot
To have launchd start mysql now and restart at login:
brew services start mysql
Or, if you don't want/need a background service you can just run:
mysql.server start
==> Summary
🍺 /usr/local/Cellar/mysql/8.0.12: 255 files, 233.0MB
$ mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
음, 접속을 할 수 없다고 나온다. 검색.. Linux DB
이 에러의 원인은 MYSQL의 소켓 파일인 mysql.sock 파일이 없거나 정확하지 않아서 발생하는 에러입니다. MYSQL이 실행되면 MYSQL 소켓 파일이 /tmp/ 디렉토리에 다음과 같이 생성되게 되는데 해당 에러는 mysql.sock 파일의 위치가 다른 경우입니다. 이 경우 다음과 같이 조치합니다.
아마도 docker내에 mysql.sock 파일이 생성되었을 테니, 시스템 상에서는 해당 파일이 보이지 않을 것이다.
docker에서 띄어져 있는 mysql에 CLI 접속
우선 docker에서 LISTEN하고 있을 포트를 시스템으로 포워딩을 해주어야 한다.
docker ps 명령으로 확인이 가능하다. 아래 끝쪽에 보면 도커 내의 3306 포트가 시스템의 3306으로 매핑이 되어 있다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2fe68cbd6713 mysql:5.6 "docker-entrypoint.s…" 20 hours ago Up 20 hours 0.0.0.0:3306->3306/tcp mysql
이젠 host와 port를 지정해주면 socket이 아닌 TCP로 연결이 된다. --user
- h : host
- P : port
--user : 사용자명
--password : 이것은 패스워드를 프롬프트 상에서 입력 받겠다는 인자
mydb : 접속할 DB명
$ mysql -h 127.0.0.1 -P 3306 --user=root --password mydb
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 260
Server version: 5.6.42 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
접속 성공!
시스템 timezone 확인 하기
mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM | SYSTEM |
+--------------------+---------------------+
1 row in set (0.00 sec)
SYSTEM은 시간대 설정이 현재 시스템의 타임 존과 동일하다는 말이다.
global과 session 두 가지가 있는데, 글로벌은 DB전체에 영향을 미치는 것이고 session은 접속한 커넥션에 적용되는 타임존이다.
만약 서울 시간대로 설정하고 싶으면 'Asia/Seoul'를 사용하면 된다. (아래는 글로벌 설정)
mysql> SET GLOBAL time_zone = 'Asia/Seoul';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| Asia/Seoul | SYSTEM |
+--------------------+---------------------+
1 row in set (0.00 sec)
mysql> exit
Bye
만약 현재 접속한 세센의 타임존만 마꾸고 싶으면 GLOBAL을 빼고 수행한다.
mysql> SET time_zone = 'Asia/Seoul';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| Asia/Seoul | Asia/Seoul |
+--------------------+---------------------+
1 row in set (0.00 sec)
세션 타임존을 변경하지 않고 재 접속을 하면 global 설정을 따라간다.
'DB > MySQL,MariaDB' 카테고리의 다른 글
[MySql] varchar 5라면 한글은 몇 글자까지 들어갈 수 있을까? (0) | 2019.12.12 |
---|---|
Aurora MySQL - alter table modify column 에러 (0) | 2019.09.10 |