2017.09 현재, MariaDB 에서만 이런 문제가 발생하는 듯?
2017.10 현재, MariaDB root password 관련 문제 해결법을 수정했다.
별로 알 필요없는 내용들..
오랜만에 mysql 을 건드려보려니.. 여기 저기 부대낀다. 이 글은 다음 오류들을 해결하는 와중에 알아낸 것들을 정리한 것이다.다음 글을 참고했다.우분투에서 mysql 설정 파일은 다음 위치에 있다.
- Can't connect to MySQL server on 'DOMAIN' (111)
- Host is not allowed to connect to this MySQL server
- Access denied for user 'root'@'localhost'
/etc/mysql/my.cnf (이전 판)
또는, 최근 판(5.7.16)에선, 저 파일이 있긴한데, 실제로는/etc/mysql/mysql.conf.d/mysqld.cnf
이 파일이 실제 파일이다. 이 파일을 ~/.my.cnf 에 복사해서 사용하라고 돼 있긴 한데.. 정확한 사용법은 모르겠다~
1. 설치.
mysql : $ sudo apt install mysql-server
MariaDB : $ sudo apt install mariadb-server
확실하진 않지만, MySql 은 저렇게 설치할 때, 설치 중간에 root 암호등을 묻는 화면이 나온다. 그러나 MariaDB 엔 그런게 없다.
어떤 것을 선택하든, 설치가 끝나면 다음 과정을 거쳐주는 것이 좋다.
2. 초기 설정
여기부터는 mysql/MariaDB 구분없이 동일하다. MariaDB 도
mysql_secure_installation
을 해준다.$ sudo mysql_secure_installation
여기에서 시키는대로 적절히 선택하면 된다. 초기화하려면 모두 "YES" 를 선택하면 된다. 원격접속도 여기에서 가능하게 해줄 수 있다.
root 암호를 초기화 할 수도 있다.
이 작업이 끝나면, 다음을 통해 mysql(MariaDB)에 접근이 되는지 확인해본다.
$ mysql -u root -p
접근이 되고, DB 프롬프트가 떨어지면 아무 문제가 없이 잘 설치/설정이 된 것이다.
3. 문제 해결
만약, 위 명령에서 DB 로 접근이 되지 않고, ERROR 1698 (28000): Access denied for user 'root'@'localhost' 이 나온다면, 다음 처치가 필요하다.
(다음 글들에서 도움을 얻었다.)
- mysql (mariadb) ERROR 1698 (28000): Access denied for user 'root'@'localhost'
- Can't reset MySQL (MariaDB) root password
$ sudo mysql -u root
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set plugin='mysql_native_password' where user='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> quit;
왜 이런 현상이 생기는 지는 잘은 모르지만, 아마도 mysql 의 root 가 시스템 자체의 root 계정 PW 를 연동하여 쓰게끔 기본 설정이 된 모양이다. 이것을 자체 PW 로 바꿔주는 게 위 작업인 듯 하다.
이제는 sudo mysql 을 하면, 정확한 PW 를 넣어야 접근이 가능해진다.
이 설정을 마치고 나면, 적어도 WordPress 를 돌리는데는 전혀 문제가 없는 상태가 된다.
덧글