DevEnjoy

One Step Closer

MySQL

ubuntu에서 mysql 완전 삭제

2017년 7월 12일 by YongPwi Leave a Comment

매번 구글링만 하다가,,,

생각난김에 명령어 정리

1
2
3
4
5
6
7
sudo service mysql stop
sudo apt-get purge mysql-server
sudo apt-get purge mysql-common
sudo rm -rf /var/log/mysql
sudo rm rm -rf /var/log/mysql.*
sudo rm rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
Posted in: MySQL, Programing Tagged: delete, MySQL, ubuntu

Grails domain key 세팅

2015년 1월 19일 by YongPwi Leave a Comment

Gorm(Grails’ object relational mapping)은 Grails에서 구현된 ORM을 이야기 한다.

오픈소스 프로젝트 진행 중에 my-sql과 key mapping에 고생한 내용을 정리한다.

Grails에서 생성한 Domain은 DB에 Table을 생성하지 않아도 application이 올라갈 때

자동으로 DB Table을 생성해준다.

그러나 Grails Domain에서 생성하는 Table의 key는 내부적으로 id라는 컬럼 명으로

생성하여 자체적으로 관리한다.

Domain에 따로 key를 세팅 해야 할 필요가 있을경우는 하단 코드와 같이 설정하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class KeywordList {
    Long keywordListId
    String keywordName
    int keywordCount
    char isDeleted = "N"

    static mapping = {
        version false // 저장 data version 사용 유무
        id name : 'keywordListId' // DB에 생성될 primary key(auto increment)
    }

    static constraints = {
        // 컬럼 제약조건 정의
        keywordName(nullable: false)
        keywordCount(nullable: false)
        keywordType(nullable: false)
        isDeleted(nullable: false)
    }
}
Posted in: Database, Grails, Groovy, MySQL, Programing, Talk Tagged: domain, Grails, key, primary key

grails 기반 my-sql 연동시 gradle plugin 적용

2014년 10월 29일 by YongPwi Leave a Comment

현재 작업중인 grails 프로젝트에 my-sql을 사용하고 있다,,,

grails 기반으로 서버를 띄우고 외부 DB연동까지는 수월하게 작업하였다,,,

그런데 동일한 프로젝트를 Gradle plugin을 사용하여 서버를 띄우니,,,

에러가 작렬,,,

삽질을 어마어마하게 했다,,,

첫번째 문제는 grails 만으로 서버 가동할때에는 domain model 연관관계에,,,

문제가 있어서 서버 동작에는 문제가 없었는데,,,

gradle에서는 그 문제 때문에 고생을 좀 했다,,,

두번째 문제는 gradle로 서버가 올라갈때 발생하는 메모리 문제,,,

하단 첨부 이미지와 같이 VM options로 해결이 될거라 생각했는데,,,
Gradle VM Option

실제 Gradle이 동작할때는 저 옵션이 먹질 않았던 것 같다,,,

Gradle에 대한 사전지식이 없어서 좀더 찾아서 보충해야겠다,,,

그래서 겁나 구글링하여 찾아낸 방법은

build.gradle 설정 추가

1
2
3
4
5
tasks.withType(org.grails.gradle.plugin.tasks.GrailsTask) { Task t ->
    t.jvmOptions {
        jvmArgs "-Xmx512m", "-XX:MaxPermSize=256m"
    }
}

사실 코드는 금방 찾았는데 실제 코드를 붙여넣어보면

Task가 존재하지 않아서 에러 처럼 보여져서 시도하지 않았는데,,,

상위 치럼 메모리 설정을 해주면 Gradle 이 배포할때 저 옵션으로 메모리 설정을 하는듯 싶다,,,

역시 삽질,,,

혹시 필요한 분들이 있을지 몰라 현재 프로젝트의 build.gradle 소스를 남겨둔다,,,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven { url "http://repo.grails.org/grails/repo"}
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:2.1.0"
    }
}

version '0.1'
group 'com.libqna'

apply plugin: 'grails'

repositories {
    mavenCentral()
    grails.central()
    maven { url 'http://repository.jboss.org/maven2/' }
    maven { url 'http://repo.grails.org/grails/repo' }
    maven { url 'http://repo.grails.org/grails/plugins' }
    maven { url 'http://repository.springsource.com/maven/bundles/release' }
    maven { url 'http://repository.springsource.com/maven/bundles/external' }
    maven { url 'http://repository.springsource.com/maven/libraries/release' }
    maven { url 'http://repository.springsource.com/maven/libraries/external' }
}

grails {
    grailsVersion = '2.3.5'
    groovyVersion = '2.1.9'
    springLoadedVersion '1.1.3'
}

tasks.withType(org.grails.gradle.plugin.tasks.GrailsTask) { Task t ->
    t.jvmOptions {
        jvmArgs "-Xmx512m", "-XX:MaxPermSize=256m"
    }
}

dependencies {
    bootstrap 'org.grails.plugins:tomcat:7.0.54'

    compile 'org.grails.plugins:scaffolding:2.0.1'
    compile 'org.grails.plugins:cache:1.1.1'

    runtime 'org.grails.plugins:hibernate:3.6.10.8'
    runtime 'org.grails.plugins:database-migration:1.3.8'
    runtime 'org.grails.plugins:jquery:1.11.0'
    runtime 'org.grails.plugins:resources:1.2.2'
    runtime 'org.grails.plugins:twitter-bootstrap:3.2.0'
    compile 'org.grails.plugins:font-awesome-resources:4.2.0.0'

    runtime 'mysql:mysql-connector-java:5.1.27'
}
Posted in: Database, Groovy, MySQL, Programing Tagged: Gradle, Grails, MySQL

OS X Server에서 MySQL 과 PHP 연동 관련 해결

2014년 1월 26일 by YongPwi Leave a Comment

컴퓨터 정리를 하다가 실수로 OS X Server를 삭제 하게 되었는데,,,

삽질해가며 세팅하였던 블로그가 순식간에 날아가서 다시 세팅하였다.

  • os x server 재설치
  • server appliaction 에서 블로그 주소 세팅 및 PHP 웹 응용프로그램 활성화
  • DB는 영향 없으니 블로그 접속 시도

그런데,,,

데이터베이스에 연결하는데 오류가 생겼습니다.

일전에 초기 세팅할 때에도 재설치 시 그런 문제가 있어서 MySQL DB와 User를 모두 날린 후 재설치 시 해결하였는데

이번에는 얼마 전에 근 한 달간을 삽질해서 세팅한 페북 플러그인과 설정들을 살려보겠다는 생각에 열심히 구글링을 하였다.

꽤 삽질을 하였다. PHP 소스에 문제가 있나 싶어서

1
2
3
4
5
6
7
8
9
10
$db_host = "localhost";
$db_user = "test_user";
$db_passwd = "test_passwd";
$db_name = "test_name";
$conn = mysqli_connect($db_host,$db_user,$db_passwd,$db_name);
if (mysqli_connect_errno($conn)) {
   echo "데이터베이스 연결 실패: " . mysqli_connect_error();
} else {
   echo "성공~!!!";
}

상위처럼 test도 해봤다. 그런데 안된다,,,

머가 잘못일까 삽질하다 보니 default port라 인식할 거라 생각했는데 3306을 빼먹어서 연결이 안 된 상황,,,

일단 DB 연결이 되는 것을 확인한 후 다른 환경 문제일 거라 생각하고 다시 구글링,,,

그런 중 MySQL과 PHP 연동 관련된 두 가지 해결 방법을 찾았다.
 

첫 번째 해결방법
문제
MySQL 서버가 동작 중일 때, tmp/mysql.sock 파일이 생성된다.
그런데 PHP 설정이 var/mysql/mysql.sock 으로 되어 있어서 PHP에서 MySQL 접속이 불가능한 경우가 있다.

해결
/etc/php.ini.default 파일에서 var/mysql/mysql.sock 로 되어 있는 부분(세 군데)을 전부 tmp/mysql.sock으로 변경.
그리고 다음과 같이 php.ini 파일을 생성.

두 번째 해결방법

1
2
3
4
5
cd /var
sudo mkdir mysql
sudo chmod 755 mysql
cd mysql
ln -s /tmp/mysql.sock mysql.sock

또는

1
2
cd /tmp
ln -s /var/mysql/mysql.sock mysql.sock

두가지 방법을 보니 문제점은 MySQL과 PHP 연동 간에 설정 부분이 문제가 있는 것으로 확인된다.

나는 두 번째 방법은 무언가 폴더를 더 생성하고 예외를 두는 것 같아서 첫 번째 php.ini 파일의 mysql.sock 의 경로명을 수정하였다.

Posted in: Database, MySQL, PHP, Programing Tagged: Apache, MySQL, OS X, PHP

Calendar

5월 2025
일 월 화 수 목 금 토
« 4월    
 123
45678910
11121314151617
18192021222324
25262728293031

Recent Posts

  • ubuntu bastion 설정
  • Spring Boot properties 암호화
  • Git Repository Bitbucket과 Issue Tracker Redmine 연동 설정
  • Spring Security 동일 session 제어
  • Spring @Mock, @Mockbean, @InjectMock

Recent Comments

  • pzotov (Ubuntu 14.04에서 Sonarqube 6.7.1 service 등록)
  • cours de theatre paris (AWS ELB와 Auto Scaling 연동, nginx)
  • bayern munich (IntelliJ EAP Font rendering)
  • camiseta del chelsea (OS X에서 APP 아이콘 변경)
  • cheap football shirts replica (jQuery Ajax에서 json Array 직렬화)

Copyright © [the-year] [site-link].

Powered by [wp-link] and [theme-link].