Dork's port

Kali Linux에서 Mysql 설치 및 C++ 환경 설정(Mysql root password setting) 본문

Linux

Kali Linux에서 Mysql 설치 및 C++ 환경 설정(Mysql root password setting)

Dork94 2017. 12. 13. 13:44

오늘은 Kali Linux환경에서 Mysql 설치 및 C++에서 이용하기 위한 환경 설정을 해보도록 하겠습니다.


우선 설치는 Mysql이 기본적으로 Kali Linux에 설치되어 있으므로 그것을 이용하도록 하겠습니다(MariaDB).


C++에서 Mysql을 연동하여 사용하기 위해 아래의 라이브러리가 이용됩니다.


따라서 아래 명령어로 설치를 먼저 진행합니다.


# apt-get install libmysqlcppconn*




그러면 C++과 Mysql을 연동하기 위한 라이브러리는 모두 설치되었습니다.


그런데, Mysql이용시 약간의 설정이 요구됩니다.


기본적으로 Mysql을 이용한 적이 없으시다면 아래의 명령어를 통해.Mysql에 접속할 때에, root에 대한 인증절차 없이 바로 root권한으로 로그인 되는것을 볼 수 있습니다.


# mysql -u root


ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

에러가 발생한다면 mysql이 동작중이지 않은 것 이므로 아래의 명령어를 통해 서비스를 동작시킨다.

# service mysql start



이렇게 되면 보안상의 문제가 있을 뿐더러, C++에서 연동하여 사용할때에 Database에 접속도 정상적으로 되지 않습니다.


따라서, 설정을 바꿔주어야 합니다.




위에서 확인하시는 바와 같이 root의 plugin이 unix_socketd 으로 되어 있습니다.


이것을 변경해주어야 하는데 그전에 아래의 명령어로 root 계정에 대한 Password를 설정 해줍니다.


MariaDB [mysql] > ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@SSW0RD';



위의 명령어의 syntax error가 발생하시는 분들은 아래의 명령어로 시도해 보시길 바랍니다.


MariaDB [mysql] >  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('P@SSW0RD');





설정이 정상적으로 완료되었다면, 위의 plugin을 변경해 주도록 하겠습니다.


MariaDB [(none)] > USE mysql;

MariaDB [mysql] > UPDATE user SET plugin='mysql_native_password' WHERE User='root';

MariaDB [mysql] > FLUSH PRIVILEGES;

MariaDB [mysql] > exit; 

#  service mysql restart



여기까지 정상적으로 동작이 완료되었다면, C++에서 mysql을 사용할 수 있습니다.


다음에는 위의 과정으로 완료한 설정을 통해 C++에서 mysql을 연동 및 사용을 해보도록 하겠습니다.


참고 : https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost

Comments