본문 바로가기
DB 관련/mariaDB_사용법

wsl2(ubuntu20.04)에 mariadb 설치 및 실행방법 / + 특정DB에 권한주는 방법

by 알 수 없는 사용자 2022. 5. 22.

https://yooloo.tistory.com/52

 

Ubuntu 20.04에 MariaDB 설치하기

윈도우10 WSL 에 설치된 Ubuntu 20.04 에 MariaDB 설치하기 [ 설치환경 ] Microsoft Windows 10 Pro(10.0.19041 N/A 빌드 19041) WSL 2(Ubuntu 20.04 LTS) 설치순서 wsl에 접속 mariadb-server 목록 조회 : 설치할..

yooloo.tistory.com

 

 

 

sudo apt install mariadb-server


sudo systemctl start mysql 이거로 mysql 을 킬 수 가 있는데

wsl2 에서는 systemctl 명령어가 안먹는듯 systemctl 기능을 쓸 수 있게 하는 방법은 있는데 이거하면 다른데서 버그 터짐 docker라든가 등등 그러니 지원안하는건 쓰지말자

본문 :

WSL 2 는 systemctl을 지원하지 않지만 기존의 service 명령은 지원하므로 daemon 을 띄울 때에 service 명령을 사용해야 합니다. service 는 root 만 사용할 수 있는 명령어이므로 다음과 같이 /etc/sudoers 에 한 줄을 추가해 주면 편리하게 구동할 수 있습니다.

<-- 이게 뭔말이냐면 

sudo systemctl start mysql  기존이 이렇게 킨거를

sudo service mysql start     이렇게 켜야 한다.

 


명령어만 요약

sudo apt install mariadb-server

 

sudo service mysql restart

 

sudo mysql_secure_installation

- Enter current password for root (enter for none): <- 이때 아무것도 안치고 enter하고

n , y, n, y, y

 

sudo service mysql enable && sudo service mysql start

 

sudo mariadb

 

select host,user,plugin from mysql.user;

 

update mysql.user set plugin = 'mysql_native_password' where User='root';

 

select host,user,plugin from mysql.user;

 

#database의 계정 생성 계정은 id : liam / pw : liam##################################################

MariaDB [(none)]> create database liam_db;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> use liam_db;
Database changed
MariaDB [liam_db]> create user 'liam'@'localhost' identified by 'liam';
Query OK, 0 rows affected (0.001 sec)

MariaDB [liam_db]> create user 'liam'@'%' identified by 'liam';
Query OK, 0 rows affected (0.000 sec)

MariaDB [liam_db]> GRANT ALL PRIVILEGES ON liam_db.* to 'liam'@'localhost'IDENTIFIED BY 'liam';
Query OK, 0 rows affected (0.001 sec)

MariaDB [liam_db]> GRANT ALL PRIVILEGES ON liam_db.* to 'liam'@'%' IDENTIFIED BY 'liam';
Query OK, 0 rows affected (0.001 sec)

MariaDB [liam_db]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [liam_db]> exit
Bye


liam@liam:~$ sudo service mysql restart
[sudo] password for liam:
 * Stopping MariaDB database server mysqld                                   [ OK ]
 * Starting MariaDB database server mysqld                                   [ OK ]


liam@liam:~$ mysql -u liam -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| liam_db            |
+--------------------+
2 rows in set (0.001 sec)

MariaDB [(none)]>


 

MariaDB 명령어  
sudo service mysql start mariadb 시작
sudo service mysql stop mariadb 스톱
sudo service mysql restart  
sudo service mysql status mariadb 상태
sudo mysql_secure_installation mariadb 보안설정
( disallow root login remotly = n 하고 나머지 y 해라 )
sudo mariadb mariadb 접근
sudo service mysql enable && sudo service mysql start mariadb 서버 bootTime마다 자동시작
   

보안설정 권장 사양 (접은글)

더보기

$ sudo mysql_secure_installation
 set root password = Y                           <- N or Y 정하셈 Y 하고 그냥 비번 생성하는게 나는 편함.
 remove anonymous user = Y
 disallow root login remotly = n
 remove test dataase and access to it = Y
 reload previlege tables now = Y

 

( 일단 mysql에서 쓰는 명령어는 그대로 씀 )

MariaDB 서버접속에서 사용하는 명령어들  
select version(); 마리아 디비 버전확인
select host,user,plugin from mysql.user; mysql디비의 user계정 정보에 대해 조회
update mysql.user set plugin = 'mysql_native_password' where User='root';  
   
   

 

 

"mysql -u root -p" 명령어 에러 이유 : 

select host,user,plugin from mysql.user; 쳐서 보면 

이럼. plugin 이 "unix_socket"으로 되어 있어서 "mysql -u root -p" 명령어가 안먹는것.

해결법 : plugin 을 바꿔주면 된다.

sudo mysql

MariaDB> update mysql.user set plugin = 'mysql_native_password' where User='root';
MariaDB> FLUSH PRIVILEGES;

MariaDB [(none)]> select host,user,plugin from mysql.user;
+-----------+------+-----------------------+
| host      | user | plugin                |
+-----------+------+-----------------------+
| localhost | root | mysql_native_password |
+-----------+------+-----------------------+
1 row in set (0.000 sec)

MariaDB> exit;

 


create database liam_db;

 

use liam_db;

 

# database의 계정 생성 계정은 id : liam / pw : liam
# 외부에서도 접속 가능한 계정으로 생성하고 싶다면 localhost를 %로 설정
mysql> create user 'liam'@'localhost' identified by 'liam';
mysql> create user 'liam'@'%' identified by 'liam';

 

# 생성된 계정 확인

 

# liam계정을 liam_db 데이터베이스에 권한 추가  ( id : liam , passwd : liam )
MariaDB [mysql]> GRANT ALL PRIVILEGES ON liam_db.* to 'liam'@'localhost'IDENTIFIED BY 'liam';
MariaDB [mysql]> GRANT ALL PRIVILEGES ON liam_db.* to 'liam'@'%' IDENTIFIED BY 'liam';

# 계정 및 권한 즉시 적용
mysql> FLUSH PRIVILEGES;

# mysql 재실행
$ sudo service mysql restart

 

# liam 계정으로 DB접속

mysql -u liam -p    -> 비번 치면 접속. show databases; 치면 권한이 있는 DB 만 나옴.

위에꺼 아니면 밑에꺼 쳐랏

 sudo mariadb -u liam -p

 

============================================================================

 

@설명

프로시저 안에서 사용될 때 SET A=1; 은 프로시저 실행이 끝나면 초기화가 되고, SET @A=1; 은 프로시저가 끝나도 계속 유지되는 값이라고 보시면 됩니다.

 

%설명

외부에서의 접근을 허용.

 

 

 

 

 

 

 

'DB 관련 > mariaDB_사용법' 카테고리의 다른 글

DDL dump load  (0) 2023.05.23
SQL 명령어 정리  (0) 2022.04.14

댓글