반응형

사용자 환경 : macOS Sierra 10.12.65.7.20 MySQL Community Server (GPL)






테이블의 이름을 바꾸는 방법은 간단하다.



mysql> alter table OLD_NAME rename to NEW_NAME;



OLD_NAME이 기존 테이블명이고, NEW_NAME이 변경할 테이블명이다.






반응형
반응형

사용자 환경 : macOS Sierra 10.12.65.7.20 MySQL Community Server (GPL)






안드로이드로 MySQL에 관한 개발을 하던 도중 다음과 같은 에러가 발생했다.



mysqli_connect(): (HY000/2002): No such file or directory in (중략)



열심히 구글링을 했었고, 여러 해결 방법이 나와 있었다. 기본적으로 서버가 안켜져있는 경우에 발생한다고 한다.



하지만, 서버는 너무나 잘 켜져있었다. 맥북을 한 번 밀고 다시 개발환경 세팅한 거라 환경 설정이 다 안되었다고 판단하고 예전 기억을 떠올렸다.



분명 소켓에 관한 설정을 했던 것 같아 다시 구글링을 해서 해결 했다. 해결 방법은 다음과 같다.





우선 터미널을 열고 폴더 하나를 만든다.

$> sudo mkdir /var/mysql




다음, 소켓에 대한 심볼릭 링크를 지정한다.

$> sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock




다시 앱을 실행한 결과, 에러가 사라졌다.





또 하나 임시 해결 방안이 있다.



php 파일에서 다음 localhost를 127.0.0.1로 변경하면 소켓 설정 없이 해결할 수 있었다.


$conn=mysqli_connect('localhost', 'root', 'PASSWORD', 'DATABASE');





반응형
반응형

사용자 환경 : macOS Sierra 10.12.65.7.20 MySQL Community Server (GPL)






MySQL을 사용하다보면 한글을 입력하고 싶을 때가 있으나 기본적인 설정으로는 한글이 깨져 보인다.



이 문제를 해결해보고자 하며 여기에는 여러 방법이 있으나 그 중 일부만을 설명한다.





1. 데이터베이스 생성 시 설정

mysql> create database DB_NAME default character set utf8 collate utf8_general_ci;

DB_NAME은 데이터베이스명을 뜻한다.





2. 기존 생성되어 있는 데이터베이스의 설정

mysql> alter database DB_NAME default character set utf8 collate utf8_general_ci;





3. 테이블 생성 시 설정

mysql> create table TABLE_NAME (
    -> id int(4) primary key,
    -> ...
    -> ) default character set utf8 collate utf8_general_ci;

TABLE_NAME 역시 테이블명을 뜻한다.





4. 기존 생성되어 있는 테이블의 설정

mysql> alter table TABLE_NAME default character set utf8 collate utf8_general_ci;


반응형
반응형

사용자 환경 : macOS Sierra 10.12.65.7.20 MySQL Community Server (GPL)






데이터베이스를 구축하다보면 테이블 이름을 잘 못 만들었거나, 엉뚱한 데이터베이스에 만드는 경우가 가끔 생긴다.



본인은 쿼리문을 잘 몰랐을 때 이런 상황에서 다시 만들었던 기억이 있다... ):



이와 같은 실수를 하는 사람이 없길 바라며 이번 글을 포스팅하게 되었다.





1. 테이블 이름 변경 및 이동

mysql> alter table 변경전테이블이름 rename 변경할테이블이름;

이와 같은 쿼리문을 이용하여 이동 또한 가능하다.



예를 들어 A 데이터베이스에 있는 test라는 테이블을 B 데이터베이스로 이동시키고 싶다면 다음과 같이 작성할 수 있다.

mysql> alter table A.test rename B.test;





2. 테이블 복사

mysql> create table 생성될테이블 like 기존테이블;

다른 데이터베이스에 있는 테이블 또한 복사가 가능하다.



예를 들어 A 데이터베이스에 있는 test 테이블을 C 데이터베이스에 복사하려고 한다면 다음과 같이 작성할 수 있다.

mysql> create tabke C.test like A.test;


insert 구문을 이용한 방법도 있다.

mysql> insert into 입력할테이블 select * from 복사될테이블;


마찬가지로 A 데이터베이스에 있는 test 테이블을 C 데이터베이스에 복사하려고 한다면 다음과 같이 작성할 수 있다.

mysql> insert into C.test select * from A.test;






반응형
반응형

사용자 환경 : macOS Sierra 10.12.65.7.20 MySQL Community Server (GPL)





우선 root 패스워드를 잊어버려서는 안되지만 사람은 실수를 하기에..




1. 먼저 MySQL 데몬을 정지시킨다.

$> /usr/local/mysql/support-files/mysql.server stop





2. 패스워드를 생략하여 접속할 수 있는 안전 모드로 진입한다.

$> /usr/bin/mysqld_safe --skip-grant-tables &





3. MySQL에 비밀번호 없이 접속한다.

$> /usr/local/mysql/bin/mysql -uroot





4. 패스워드를 변경한다. (5.7버전을 기준으로 명령어가 다르니 자세히 보자)


5.7버전 미만

mysql> update mysql.user set password=password('패스워드') where user='root'; 
mysql> flush privileges;
mysql> quit

5.7버전 이상

mysql> update mysql.user set authentication_string =password('패스워드') where user='root'; 
mysql> flush privileges;
mysql> quit





5. MySQL 데몬을 재시작한다.

$> /usr/local/mysql/support-files/mysql.server restart





이제 접속해보면 문제 없이 진입 될 것이다.

반응형
반응형


사용자 환경 : macOS Sierra 10.12.65.7.20 MySQL Community Server (GPL)





MySQL에 접속을 시도하다 보면 다음과 같은 에러문을 쉽게 볼 수 있을 것이다.

$> /usr/local/mysql/bin/mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
$> /usr/local/mysql/bin/mysql -uroot -p잘못된비밀번호
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
위에 두 에러의 차이점을 보자면, 마지막 단어인 using password: 부분이 각각 YES, NO로 되어있다.



그럼 두 에러를 하나씩 살펴보자.



$> /usr/local/mysql/bin/mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
위 에러는 비밀번호를 입력하지 않았을 경우 나타는 에러이다.
-p 옵션을 사용하여 옳바른 비밀번호를 입력하면 된다.



$> /usr/local/mysql/bin/mysql -uroot -p잘못된비밀번호
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

위 에러는 -p 옵션을 사용하여 비밀번호를 입력했지만, 옳바르지 않은 비밀번호를 입력했을 경우 나타는 에러이다.

옳바른 비밀번호를 입력 시 다음과 같은 화면이 출력된다.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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>


반응형

+ Recent posts