(MacOS) MySQL 설치부터 설정까지
(MacOS) MySQL, MySQL Workbench
- 설치, 실행 및 기본 설정
- 한글설정(UTF-8)
- 삭제
- 접속 오류
- 접속 권한 설정
설치, 실행 및 기본 설정
설치
MacOS에서는 기본으로 깔려있는 터미널을 이용해 프로그램을 설치
MySQL은 brew를 이용해 설치하기 때문에 brew를 먼저 설치 후 다음 명령어를 실행
$ brew install mysql
만약 특정 버전을 설치하고 싶다면,
$ brew search mysql
로 검색
원하는 버전의 formula 이름을 확인
MySQL뒤에 @버전을 붙여 $ brew install <설치할 formula>
환경 변수 설정
설치가 완료되면, 환경 변수를 설정
다음 명령어로 자신의 MacOS에서 사용하는 Shell 종류 확인
echo $SHELL
bash일 경우, 환경 변수 설정
$ vi ~/.bash_profile
에 아래 내용 추가
export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:$PATH
zsh일 경우, 환경 변수 설정
$ vi ~/.zshrc
export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin:$PATH
실행
$ brew services start mysql
# background에서 실행시킬 필요가 없는 경우 아래 이용
$ mysql.server start
설정
MySQL을 실행시킨 상태에서 MySQL 접속하기 전에 root 계정 비밀번호 설정
$ mysql_secure_installation
- 비밀번호 복잡도 검사 과정 (n)
- 복잡한 비밀번호를 사용하도록 제한해주는 플러그인을 사용하려면 (y)
- 그냥 쓰던 비밀번호(약한 보안) 제한받지 않고 쓰고 싶다면 (n)
- 루트 비밀번호 입력 & 확인
- 익명 사용자 삭제 (y)
- $ mysql만으로도 접속이 가능하게 하려면 (n)
- 접속 시 -u 옵션을 반드시 명시하려면 (y)
- 원격 접속 허용 (n)
- 로컬에서만 실행하는 경우는 (n)
- localhost외의 ip에서 root 아이디의 접속을 허용하는 경우는 (y)
- test DB 삭제 (n)
- 수정할 것이 있는가? (y or n)
- 하나라도 권한 변경을 했다면 (y)
접속
$ mysql -uroot -p
위 명령어 실행 후 위에서 설정한 root 비밀번호를 입력하고 엔터
버전 변경
mysql 8.0 -> mysql 5.7
# Unlink current mysql(8.0) version
$ brew unlink mysql
# Check older mysql(5.7) version
$ ls /usr/local/Cellar/mysql@5.7
# Link the older version
$ brew switch mysql@5.7 5.7.24
mysql 5.7 -> mysql 8.0
# Unlink older mysql version
$ brew unlink mysql@5.7
# Check current mysql(8.0) version
$ ls /usr/local/Cellar/mysql
# Link the current version
$ brew switch mysql 8.0.13
한글설정(UTF-8)
charset utf-8
- mysql 접속
$ mysql -uroot -p
mysql> status;
명령어 입력해서 설정 확인- latin이 있다면 mysql을 나간 후 터미널을 다시 실행
- 관리자 권한으로 /etc/my.cnf 파일 생성
# my.cnf가 기본적으로 존재하지 않으므로 아래 명령어를 통해 새로 생성 $ sudo vi /etc/my.cnf Password:
- my.cnf 파일에 아래 내용 넣기
[mysqld] init_connect="SET collation_connection=utf8_general_ci" init_connect="SET NAMES utf8" character-set-server=utf8 collation-server=utf8_general_ci skip-character-set-client-handshake [client] default-character-set=utf8 [mysql] default-character-set=utf8
- mysql 서버 정지 후 재실행
# alias 설정 후 아래와 같이 사용 가능 $ sudo mysqlserver stop $ sudo mysqlserver start
- mysql 재접속
mysql> show variables like 'c%';
명령어를 이용해서 정상적으로 utf-8로 설정되었는지 확인
삭제
해당 내용을 모두 shell script에 넣어 한 번에 실행하는 것을 추천
# brew install mysql로 설치한 경우
$ sudo rm -rf /usr/local/var/mysql
$ sudo rm -rf /usr/local/bin/mysql*
$ sudo rm -rf /usr/local/Cellar/mysql*
# mysql 홈페이지에서 DMG 파일로 설치한 경우
$ sudo rm /usr/local/mysql
$ sudo rm -rf /usr/local/mysql*
$ sudo rm -rf /Library/StartupItems/MySQLCOM
$ sudo rm -rf /Library/PreferencePanes/My*
$ sudo rm -rf ~/Library/PreferencePanes/My*
$ sudo rm -rf /Library/Receipts/mysql*
$ sudo rm -rf /Library/Receipts/MySQL*
$ sudo rm -rf /var/db/receipts/com.mysql.*
# mac osx(10.10 이상)은 아래 내용도 추가
$ sudo rm -rf /Library/LaunchDaemons/com.microsoft.office.licensing.helper.plist
$ sudo rm -rf /private/var/db/receipts/*mysql*
접속 오류
임시 비밀번호 분실한 경우
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
아이디/패스워드가 다르거나 접근 권한이 없을 경우
비밀번호를 알고 있는 경우
/usr/local/mysql/bin/ 디렉토리에서 MySQL 실행 가능
다음 명령어로 MySQL 실행 후 비밀번호 입력
$ /usr/local/mysql/bin/mysql -uroot -p
비밀번호를 분실한 경우
아래의 과정에 따라 비밀번호 재설정
- MySQL 서버 실행
$ sudo /usr/local/mysql/support-files/mysql.server start
- 터미널에서 접속하기
$ cd /usr/local/mysql/bin/ $ sudo ./mysql 또는 $ /usr/local/mysql/bin/mysql -uroot
- 안전모드로 MySQL 데몬(mysqld)을 실행
$ sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
위와 같이 입력하면 인증을 생략하고 안전모드로 데몬을 실행
입력할 비밀번호: MySQL 비밀번호가 아닌 맥의 관리자 비밀번호
위 명령어는 실행된 상태로 유지,
새로운 터미널 창을 열어서 MySQL에 접속
- MySQL 접속
$ /usr/local/mysql/bin/mysql -uroot
제대로 실행되었다면 비밀번호를 묻지 않고 바로 접속 가능
- 비밀번호 재설정
mysql> use mysql; mysql> update user set authentication_string=password('root') where user='root'; // 마지막으로 변경사항을 적용하기 위해 flush privileges 명령어 실행 mysql> flush privileges;
접속이 성공한 뒤에는 아래와 같이 비밀번호를 root로 변경
password=(‘root’)에 root 대신 원하는 비밀번호를 입력
- MySQL 접속
$ /usr/local/mysql/bin/mysql -uroot $ /usr/local/mysql/bin/mysql -uroot -proot
다시 MySQL에 접속하면 잘 되는 것을 확인
접속 후 명령을 실행하게 되면 다음과 같은 에러가 발생
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- 에러 해결
mysql> use mysql; mysql> set password = password('원하는 비밀번호');
비밀번호가 맞아도 접속이 안되는 경우
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
MySQL 서버가 켜져 있는지 확인
MySQL 서버 실행 후 다시 접속
$ sudo /usr/local/mysql/support-files/mysql.server start
접속 권한 설정
- MySQL 서버 실행
$ sudo /usr/local/mysql/support-files/mysql.server start
사용자를 추가를 위해 MySQL 서버에 로그인(root 권한)
$ mysql -u root -p Enter password:
- 사용자 추가
# 로컬에서 접속 가능한 사용자 mysql> create user '사용자'@'localhost' identified by '비밀번호'; # 원격에서 접속 가능한 사용자 mysql> create user '사용자'@'원격IP주소' identified by '비밀번호';
- 사용자에게 DB 권한 부여
# 모든 DB에 접근 가능하도록 권한 부여 mysql> grant all privileges on *.* to '사용자'@'localhost'; # 특정 DB(DB이름)에만 접근 가능하도록 권한 부여 mysql> grant all privileges on DB이름.* to '사용자'@'localhost';
- 사용자 계정 삭제
mysql> drop user '사용자'@'localhost';
댓글남기기