반응형

AIX에 대한 이미지 검색결과




요 근래 AIX 7.2에 MariaDB 및 MySQL을 설치하려 했으나 잠정적 불가능으로 결론..


첫번째로, AIX 7.2 전용 MySQL이 없다. RPM 지원은 당연히 없으며 MariaDB는 태생부터가 AIX 지원을 안한다.



두번째로, 그나마 AIX 5.1에서 설치가 가능하던 MySQl 3.2.58 버전 설치 시도 했으나 역시 실패


IBM 공식 홈페이지에 있는 AIX ToolBox for Linux Application을 통해 예전에 MySQL이 그래도 AIX를 지원한다는 사실을 발견하여 지푸라기 잡는 심정으로 그 RPM을 다운받아 설치 시도 RPM 설치까지는 모두 완료했으나 실행시 에러 발생.


관련 에러 원인 및 해결방안을 아무리 뒤져도 나오지 않았다. 심지어 구글 및 스택 오버플로우에서도!


그나마 찾고 찾아서 지나가는 말투로 적은듯한 댓글에 적혀 있는것이... 32bit / 64bit 지원여부에 따라서 안될것이라는 의견


찾아보니 MySQL 3.2.58 버전 출시는 2003년... 64비트 어플리케이션 자체가 생소하던 시절인데 AIX 7.2 64비트에 그래서 설치가 안되는 것인가... 어쨌든 실패




세번째로, 어떻게 MySQL 까지 실행은 성공했으나(그런데 Alpha 버전...) MySQL 연동에 필요한 라이브러리 실행 불가.


C++ 소스코드에서 MySQL DB와 연동시키려면 아마 절대다수가 MySQL Connector/C++을 사용할것이다.


그런데 Connector/C++이 1.1버전 이상에만 들어있는 함수를 사용했다면 역시 불가...


내가 찾아보니 기존 리눅스 소스에서는 1.19버전(즉... 최신....ㅡㅡ....) 함수를 마음껏 사용해서 짜놨기 때문에 소스코드 짜기는 참 쉬웠으나 결국 AIX에서는 불가. 


왜냐하면 AIX를 지원하던 마지막 버전이 1.1이기 때문에 그 이후의 버전의 새 함수를 사용한다면 구 버전으로 갈아치우거나 해야한다.


그럼 Connector/C++ 1.19버전의 라이브러리만 추출해서 적용하면 되는거 아닌가?


시도 안해봤을리가 있나... 이미 해봤으나 1.19 버전 소스코드를 받아 갖은수를 써서 Make를 시도해봐도 불가...


아예 소스코드 자체가 문법에 안맞다고 광활한 에러를 내뿜기 시작한다. 소스 코드 자체가 리눅스에 맞게 짜여진듯...


라이브러리 추출불가.


그럼 AIX를 지원하던 1.1버전 이전의 구버전 Connector/C++은? 라이브러리 추출 되지만 그 라이브러리 가지고는 적용 불가. 언급했다시피 최신버전의 Connector 함수를 마음껏 사용했다.





네번째로, 그렇다면 AIX 7.2에 적용할수 있는 DB를 쓰면 되지 않는가?


물론 있다. IBM의 DB2와 오라클... 이름만 들어봐도 그 포스가 절절히 흐르지만 라이센스료만 잘못하다가 억 소리나는 매우 비싼 분들이시다.


무료를 지향하는 나에게는 이미 요단강 건너서 ㅂ2 할 물건들



결론 적으로 AIX 최신버전에 MySQL을 포함한 MariaDB 등 GPL 라이센스를 따르는 오픈소스 DB들은 모두 적용이 잠정적으로 불가능하다.


물론 잠정적이라는 것은 내가 아직 실력이 부족해서 안되는것일수도 있고... 뭐 그렇다.


지금까지의 결론으로는 난 삽질만 한것이다.


능력자 분 누군가가 나의 글을 본다면 혹시 해결방법을 알고 있다면 꼭 댓글을 달아주셨으면 한다... ㅠㅠ 불쌍한 나를 좀 구제해주소서


반응형


C++ 코드로 MySQL DB와 연동하여 일련의 작업을 하는 프로그램을 제작중에 있다.


테스트 하면 워낙에 해괴망측한 이유로 에러를 뿜어내며 프로그램이 죽어대지만 이번 오류는 좀 기록을 해놔야 다음에 까먹어도 찾아볼수 있을것 같아 기록해 둔다.


보통 String 타입으로 쿼리문을 작성하여 C++ 소스코드 안에 적용해놓고 그 String 문자열 대로 쿼리문을 적용하는게 가장 일반적이다.


오라클 과는 다르게 왠지 모르게 간편한 MySQL을 선호하는 편인데 작업 도중 아래와 같은 오류를 만나게 되었다.



Column: 'Column_Name' in where clause is ambiguous 


생전 처음 만나보는 에러라서 해결방법이 막막했는데 의외로 구글링 하네 쉽게 나왔다.


문제가 되던 컬럼이 어느 테이블의 컬럼이냐를 제대로 지정안해줬기 때문에 생겨난 아주 기초적인 실수였다...



예를 들어 id라는 컬럼이 있는데 이것이 Table A에도 존재하고 Table B에도 존재한다면


당연히 쿼리에는 A.id 라던가 B.id 라고 확실히 지정을 해줘야 한다.


그런데 나 같은 경우는 예를 들어 아래의 쿼리를 실행했다.




SELECT * FROM A,B WHERE id = 10




이렇게 되면 WHERE 뒤에 있는 id가 A에서 온 id인지 B에서 온 id 인지 정확히 알수가 없어 해당 에러를 내뿜게 되는 것이다.


정작 FROM 으로 A와 B 테이블 모두 불러와놓고 이런 기초적인 실수나 하다니....


요즘 일이 많고 야근하다보니 머리가 어떻게 된것 같다. 가끔은 머리 좀 쉬어가면서 해야겠다.

반응형

CentOS 7으로 넘어오면서 상당히 많은 부분이 바뀌었다.


그래서 대체적으로 구글로 검색해서 나오는 "yum install mysql-server" 명령어로는 설치가 불가능하다.


CentOS 7부터는 MySQL대신 MariaDB를 지원하기 때문이다.


하지만 회사에서 MySQL을 사용하거나 대학교 교수님이 굳이 MySQL을 고집한다던가 하는 이유로 무조건 MySQL을 써야한다면 아래의 명령어를 순서대로 입력하면 된다.


1. yum install http://dev.mysql.com/get/mysql-community-release-e17-5.noarch.rpm


2. yum install mysql-community-server


3. systemctl start mysqld


4. mysql




4번의 과정까지 마치면 


프롬프트가 mysql>로 바뀐다. 이렇게 되면 MySQL의 설치는 끝나게 된다.


나중에 라이브러리 파일이 없어서 문제가 생기면 


http://lwk24.tistory.com/63


글을 참고하면 된다.



+ Recent posts