MariaDB 10.3.9 소스코드 컴파일 소스코드 다운로드
git clone https://github.com/MariaDB/server.git
cd server
git checkout mariadb-10.3.9

MariaDB 컴파일
cmake .

... (생략)
Could NOT find GnuTLS (Required is at least version "3.3.24")    <== 에러 발생

gnutls 3.3.24 소스코드를 다운로드 받아 설치 시도
./configure
...
Libnettle 2.7.1 was not found  <== 에러 발생

https://ftp.gnu.org/gnu/nettle/ 에서 nettle-2.7.1.tar.gz 다운로드 후 컴파일

./configure make make install


gnutls 소스 디렉토리로 다시 돌아와 ./configure 실행 (에러가 뭐이리 많이 발생할까 -_-;;;)

./configure ... Libhogweed (nettle's companion library) was not found. Note that you must compile nettle with gmp support. <== 에러 발생


hogweed는 nettle 라이브러리를 빌드할 때 같이 생성되는 라이브러리
gmp 라이브러리가 미리 설치되어 있어야 생성되는 파일이다. 
만약 로컬에 gmp 라이브러리가 없으면 skip 되어 hogweed 라이브러리는 생성되지 않는다.
그래서 위의 Libhogweed 에러가 발생한 것이다.

결론은 gmp 라이브러리를 설치하고, nettle을 다시 빌드하면 된다.
gmp-devel 라이브러리 설치 후 nettle 다시 빌드 

/usr/local/lib/ 디렉토리에 libhogweed 라이브러리 생성 확인 gnutls 소스 디렉토리로 다시 이동

./configure make make install


MariaDB 소스 디렉토리로 이동

cmake . make make install


드디어 빌드 성공



INSERT하는 간단한 Procedure 예제 입니다.


<테이블 스키마>

CREATE Table t1 (

c1 int,

c2 varchar(20)

);


<INSERT 프로시저>

DELIMITER $$

DROP PROCEDURE IF EXISTS INSERT_T1$$

CREATE PROCEDURE INSERT_T1()

BEGIN

  DECLARE i INT DEFAULT 1;

    WHILE i <= 100000 DO

      INSERT INTO t1 VALUES (i, 'string_value');

      SET i = i + 1;

    END WHILE;

END $$

DELIMITER ;

MySQL에 모든 권한을 가진 사용자를 추가하는 방법이다.


테스트 용으로 가끔식 사용하고 있는 문장들이다.


사용자 생성

mysql> create user '유저아이디'@'호스트정보' identified by '패스워드';


생성한 사용자에게 모든 권한 추가

mysql> grant all privileges on *.* to '유저아이디'@'호스트정보';


추가한 내용 적용

mysql> flush privileges;




Mariadb C Connector를 사용하던 도중 

Commands out of sync; you can't run this command now.

에러를 만나게 되었다.


MySQL Documentation을 확인해본 결과 mysql_free_result()를 해주지 않아서 발생하는 것으로 보인다.

일반 쿼리는 문제가 없는데 MySQL Procedure를 호출한 후 result 값이 남아있는 것으로 보인다. 

그래서 남아있는 쿼리 결과를 다 읽은 후 mysql_free_result()를 실행하니 잘 동작한다.


아래는 샘플 코드이다.

while ( mysql_more_results(mysql_connection) )

 {

    mysql_next_result(mysql_connection);

 }

 mysql_free_result(result);

+ Recent posts