database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31327 게시물 읽기
No. 31327
mac 으로 mariadb 설치 후 데이터베이스 생성이 안됩니다..
작성자
따봉도치
작성일
2021-01-05 00:48
조회수
5,000

현재 mac(big sur)을 쓰면서 개발을 공부 중인 초보 개발자입니다. 

mariadb를 brew로 설치하고 root로 접속한 후

2가지의 문제에 봉착했습니다. 

1. 데이터베이스 생성 오류

$ create database test 를 치니 에러가 나오네요. 

코드(에러 포함)는 다음과 같습니다.

MySQL [(none)]> create database test;
ERROR 3680 (HY000): Failed to create schema directory 'test' (errno: 2 - No such file or directory)
 

2. table 생성오류

use mysql로 접속해서 예제 table을 만들어보려고 하는데 에러가 나네요.. 

코드(에러 포함)는 다음과 같습니다. 

MySQL [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MySQL [mysql]> create table sangdata(
    -> code int primary key,
    -> sang varchar(20),
    -> su int,
    -> dan int) charset=utf8;
ERROR 1030 (HY000): Got error 168 - 'Unknown (generic) error from engine' from storage engine

 

여러군데 구글링해보다가 재설치 권하는 글에 재설치도 해보고 , 디렉토리에 권한을 줘야한다는 글을 보고 

$ ls -al /usr/local/var | grep mysql

>> drwxrwxr-x   8 _mysql  _mysql  256  1  4 22:36 mysql

이렇게 mysql 폴더에 권한도 주어보았는데 소용이 없네요.. 제가 영어도 부족하고 컴퓨터 지식도 부족해서 그런지 많이 벅차네요 또 맥이라서 이런부분은 좀 불편한것같습니다 ㅠ

 

혹시 이 부분에 대해 아는게 있으시면 도와주세요!

 

추가 버전 정보 : mac big sur(11.1)

mariadb(stable 10.5.8 (bottled))

입니다. 

이 글에 대한 댓글이 총 4건 있습니다.

1. database생성, table생성이 안되는 건 권한의 문제일 가능성이 높습니다. 

      mysql 데몬의 권한과 설정한 데이터 폴더의 권한을 각각 확인하고 맞춰주셔야 합니다. 

      $ ps -ef | grep mysql | grep -v grep 

      ==> 여기서 나오는 소유자/권한을 확인하고 데이터 폴더의 list를 확인 해보세요. 

            예를 들어  /data라면 

           $  ls -al /data 

      프로세스와 폴더의 소유자/그룹의 권한이 다르다면 

      mariadb를 shutdown하시고 ($ chown -R 소유자:그룹 /data )   권한을 맞추고 

      재기동후 create database, create table 해보세요. 



2. 두번째는 storage 에 대한 설정이 안된듯요. 

    mysql > show global variables like '%engine%';

+----------------------------+--------+

| Variable_name              | Value  |

+----------------------------+--------+

| default_storage_engine     | InnoDB |

| default_tmp_storage_engine |        |

| enforce_storage_engine     |        |

| storage_engine             | InnoDB |

+----------------------------+--------+

    다른 엔진으로 되어 있다면 설정을 맞추셔야 할 것 같습니다. 

참고바랍니다.

  

 

.님이 2021-01-05 10:46에 작성한 댓글입니다. Edit

복잡한 내용인데 잘 읽어주시고 상세한 답변해주셔서 정말 감사합니다!

 

말씀해주신 대로 2개를 모두 확인해보았는데 문제가 발생하였습니다.

 

1.파일 권한은 이해하고 권한도 설정완료 그리고 data 폴더가 없네요 그러나 프로세스 권한은..

 

 

1)파일 권한은 아래와 같이 설정을 해두었었습니다.

$ ls -al /usr/local/var | grep mysql

>> drwxrwxr-x   8 _mysql  _mysql  256  1  4 22:36 mysql

 

 

2)data 폴더가 없습니다.. 사실 구글링해봤는데 있어야했던거 같은데 없네요 ㅠ

mysql pwd

/usr/local/var/mysql

➜  mysql ls -l

total 222952

-rw-rw----  1 _mysql  _mysql     796555  1  4 22:36 JK-Mac.local.err

-rw-rw----  1 _mysql  _mysql      40960  1  5 01:43 aria_log.00000001

-rw-rw----  1 _mysql  _mysql         52  1  5 01:43 aria_log_control

-rw-r-----  1 _mysql  _mysql        846  1  5 01:43 ib_buffer_pool

-rw-rw----  1 _mysql  _mysql  100663296  1  5 01:43 ib_logfile0

-rw-rw----  1 _mysql  _mysql   12582912  1  5 01:43 ibdata1

 

추가적으로 datadir 를 mysql에서 검색해보았습니다

 

MySQL [mysql]> select @@datadir, @@innodb_data_home_dir;

+-----------------------+------------------------+

| @@datadir             | @@innodb_data_home_dir |

+-----------------------+------------------------+

| /usr/local/var/mysql/ | NULL                   |

+-----------------------+------------------------+

 

 

3)

ps -ef | grep mysql | grep -v grep 로는

 

$ ps -ef | grep mysql | grep -v grep

  501 13343     1   0  2:37PM ??         0:00.02 /bin/sh /usr/local/Cellar/mysql/8.0.22_1/bin/mysqld_safe --datadir=/usr/local/var/mysql --pid-file=/usr/local/var/mysql/JK-Mac.local.pid

  501 13454 13343   0  2:37PM ??         1:37.24 /usr/local/Cellar/mysql/8.0.22_1/bin/mysqld --basedir=/usr/local/Cellar/mysql/8.0.22_1 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/8.0.22_1/lib/plugin --log-error=JK-Mac.local.err --pid-file=/usr/local/var/mysql/JK-Mac.local.pid

  501 26535     1   0 11:45AM ??         0:00.01 /bin/sh /usr/local/opt/mariadb/bin/mysqld_safe --datadir=/usr/local/var/mysql

  501 16202  7790   0 11:29AM ttys001    0:00.03 mysql -u root -p

 

 

이런식으로 나오는데 프로세스 권한 부분은 잘 모르겠습니다 ㅠ

 

 

 

2.두번째 방법은 문제가 있는지는 잘 모르겠네요.. innodb이긴한데 보여주신 부분과 조금 다르긴해서요 아래는 실행결과입니다.

 

MySQL [mysql]> show global variables like '%engine%';

+---------------------------------+---------------+

| Variable_name                   | Value         |

+---------------------------------+---------------+

| default_storage_engine          | InnoDB        |

| default_tmp_storage_engine      | InnoDB        |

| disabled_storage_engines        |               |

| internal_tmp_mem_storage_engine | TempTable     |

| secondary_engine_cost_threshold | 100000.000000 |

+---------------------------------+---------------+

 

 

제가 아직 초보라 정말 패닉상태네요.. 찾으면 찾을수록 에러가 나옵니다. 뭐가문제인지 ㅠ

 

혹시몰라서 저기 jk-mac error 라는 부분의 내용도 첨부합니다.

 

2021-01-04 22:36:10 0 [Note] InnoDB: Uses event mutexes

2021-01-04 22:36:10 0 [Note] InnoDB: Compressed tables use zlib 1.2.11

2021-01-04 22:36:10 0 [Note] InnoDB: Number of pools: 1

2021-01-04 22:36:10 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions

2021-01-04 22:36:10 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728

2021-01-04 22:36:10 0 [Note] InnoDB: Completed initialization of buffer pool

2021-01-04 22:36:10 0 [Note] InnoDB: 128 rollback segments are active.

2021-01-04 22:36:10 0 [Note] InnoDB: Creating shared tablespace for temporary tables

2021-01-04 22:36:10 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...

2021-01-04 22:36:10 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.

2021-01-04 22:36:10 0 [Note] InnoDB: 10.5.8 started; log sequence number 42068; transaction id 8

2021-01-04 22:36:10 0 [Note] Plugin 'FEEDBACK' is disabled.

2021-01-04 22:36:10 0 [Note] InnoDB: Loading buffer pool(s) from /usr/local/var/mysql/ib_buffer_pool

2021-01-04 22:36:10 0 [Note] InnoDB: Buffer pool(s) load completed at 210104 22:36:10

2021-01-04 22:36:10 0 [ERROR] Could not open mysql.plugin table: "Table 'mysql.plugin' doesn't exist". Some plugins may be not loaded

2021-01-04 22:36:10 0 [ERROR] /usr/local/opt/mariadb/bin/mariadbd: unknown variable 'mysqlx-bind-address=127.0.0.1'

2021-01-04 22:36:10 0 [ERROR] Aborting

따봉도치님이 2021-01-05 12:29에 작성한 댓글입니다. Edit

설치가 덜 된듯합니다. 

data, plugin이 없다면 이렇게 한번 해보십시오. 


#### 권한에 맞는 유저로... 

$ /usr/local/Cellar/mysql/8.0.22_1/bin/mysql_install_db --user=<권한이 맞는 유저> --basedir=<mysql의 기본 경로> --datadir=<적절한경로>


data, plugin, mysql 등등이 생기게 될겁니다. 

그 이후 원하는 작업을 하면 될듯... 



 

.님이 2021-01-05 14:15에 작성한 댓글입니다. Edit

자세히 답변해주셔서 정말 감사합니다!

현재 진행상황은

ps -ef | grep mysql | grep -v grep 에서는 디렉토리가 나오는데 실제로 터미널로 가보니깐

/usr/local/Cellar/mysql/8.0.22_1/bin 의 위치가 없드라구여(mariadb여서 그런것같기도한데..)


그래서 /usr/local/Cellar/mariadb/10.5.8/bin 으로 가서 말씀하신 부분을 해보았습니다. 


➜  bin mysql_install_db --user=mysql --basedir=/usr/local/var/mysql --datadir=/usr/local/var/mysql


FATAL ERROR: Could not find my_print_defaults


The following directories were searched:


    /usr/local/var/mysql/bin

    /usr/local/var/mysql/extra


If you compiled from source, you need to either run 'make install' to

copy the software into the correct location ready for operation.

If you don't want to do a full install, you can use the --srcdir

option to only install the mysql database and privilege tables.


If you are using a binary release, you must either be at the top

level of the extracted archive, or pass the --basedir option

pointing to that location.


The latest information about mysql_install_db is available at

https://mariadb.com/kb/en/installing-system-tables-mysql_install_db



이런 식으로 나오긴하는데.. ㅠ

그래서 말씀하신 부분 중 경로 지정을 잘못한 것인지 아니면 실제 /usr/local/Cellar/mysql/8.0.22_1/bin/mysql_install_db에서 진행해야하는건지 잘모르겠네요.. (근데 여기는 폴더가 없다고 나오긴합니다)


어느 부분이 잘못된 걸까요?

따봉도치님이 2021-01-05 17:44에 작성한 댓글입니다.
이 댓글은 2021-01-05 17:45에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
31332php 에서 원격 mysql 접속
AALS
2021-03-05
3179
31330재귀호출에 의한 하이락키 구조의 트리형태의 정렬 [4]
김씨
2021-01-22
3587
3132880만건 데이터 조회 쿼리 동시에 요청시 실행시간이 요청수*실행시간 만큼 걸리는 현상... [4]
도와주세요
2021-01-14
3630
31327mac 으로 mariadb 설치 후 데이터베이스 생성이 안됩니다.. [4]
따봉도치
2021-01-05
5000
31326값이 없는 년월 찾기 질문드립니다. [1]
피어스
2020-12-30
3055
31325mysql 5.7.28버전에서 password()함수는 어찌해야하나요.. [3]
이기자
2020-12-30
3330
31323계층형 테이블 -> 한 Row로 마이그레이션 [2]
궁금남
2020-12-16
2931
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다