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 |
댓글