Ubuntu 14.04에서 Ruby on Rails 애플리케이션과 함께 MySQL을 사용하는 방법


소개

Ruby on Rails는 기본 데이터베이스로 sqlite3를 사용합니다. 이는 많은 경우에 훌륭하게 작동하지만 응용 프로그램에는 충분하지 않을 수 있습니다. 응용 프로그램에 PostgreSQL 또는 MySQL과 같은 클라이언트/서버 SQL 데이터베이스의 확장성, 중앙 집중화 및 제어(또는 기타 기능)가 필요한 경우 몇 가지 추가 단계를 수행하여 실행해야 합니다.

이 튜토리얼은 애플리케이션이 Ubuntu 14.04 서버에서 MySQL 데이터베이스를 사용할 수 있도록 개발 Ruby on Rails 환경을 설정하는 방법을 보여줍니다. 먼저 MySQL과 MySQL 어댑터 gem을 설치하는 방법을 다룰 것입니다. 그런 다음 MySQL을 데이터베이스 서버로 사용하는 Rails 애플리케이션을 만드는 방법을 보여줍니다.

전제 조건

이 자습서를 사용하려면 Ruby on Rails 개발 환경이 작동해야 합니다. 아직 가지고 있지 않은 경우 Ubuntu 14.04에서 rbenv로 Ruby on Rails를 설치하는 방법 링크의 자습서를 따를 수 있습니다.

또한 MySQL 데이터베이스 소프트웨어를 설치할 수 있도록 수퍼유저 또는 sudo 계정에 대한 액세스 권한이 있어야 합니다.

준비가 되었다면 MySQL을 설치합시다.

MySQL 설치

아직 MySQL이 설치되어 있지 않다면 지금 설치해 봅시다.

먼저 apt-get을 업데이트합니다.

sudo apt-get update

그런 다음 MySQL과 해당 개발 라이브러리를 설치합니다.

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

설치하는 동안 서버에서 MySQL "root\ 사용자의 암호를 선택하고 확인하도록 요청합니다.

설치가 완료되면 MySQL 환경을 안전하게 설정하기 위해 몇 가지 추가 명령을 실행해야 합니다. 먼저 MySQL에 정보를 저장할 데이터베이스 디렉토리 구조를 생성하도록 지시해야 합니다. 다음을 입력하면 됩니다.

sudo mysql_install_db

그런 다음 위험한 기본값을 제거하고 데이터베이스 시스템에 대한 액세스를 약간 잠그는 간단한 보안 스크립트를 실행하려고 합니다. 다음을 실행하여 대화형 스크립트를 시작합니다.

sudo mysql_secure_installation

MySQL 루트 계정에 대해 설정한 비밀번호를 입력하라는 메시지가 표시됩니다. 다음으로 비밀번호를 변경할 것인지 묻습니다. 현재 암호가 마음에 들면 프롬프트에 n을 입력하십시오.

나머지 질문에 대해서는 각 프롬프트에서 "ENTER\ 키를 눌러 기본값을 수락해야 합니다. 이렇게 하면 일부 샘플 사용자와 데이터베이스가 제거되고 원격 루트 로그인이 비활성화되며 이러한 새 규칙이 로드되어 MySQL이 즉시 적용됩니다. 우리가 만든 변경 사항.

이제 MySQL이 설치되었지만 여전히 MySQL gem을 설치해야 합니다.

MySQL 젬 설치

Rails 애플리케이션이 MySQL 서버에 연결되기 전에 MySQL 어댑터를 설치해야 합니다. mysql2 gem은 이 기능을 제공합니다.

Rails 사용자로 다음과 같이 mysql2 gem을 설치합니다.

gem install mysql2

이제 Rails 애플리케이션에서 MySQL 데이터베이스를 사용할 수 있습니다.

새 Rails 애플리케이션 만들기

홈 디렉터리에 새 Rails 애플리케이션을 만듭니다. -d mysql 옵션을 사용하여 MySQL을 데이터베이스로 설정하고 강조 표시된 단어를 애플리케이션 이름으로 대체해야 합니다.

cd ~
rails new appname -d mysql

그런 다음 애플리케이션의 디렉토리로 이동합니다.

cd appname

다음 단계는 애플리케이션의 데이터베이스 연결을 구성하는 것입니다.

데이터베이스 연결 구성

이 자습서의 MySQL 설치 지침을 따랐다면 MySQL 루트 사용자의 암호를 설정한 것입니다. MySQL 루트 로그인은 애플리케이션의 테스트 및 개발 데이터베이스를 생성하는 데 사용됩니다.

원하는 텍스트 편집기에서 애플리케이션의 데이터베이스 구성 파일을 엽니다. 우리는 vi를 사용할 것입니다:

vi config/database.yml

default 섹션 아래에서 "password:”라고 적힌 줄을 찾아 끝에 암호를 추가합니다. 다음과 같아야 합니다(강조 표시된 부분을 MySQL 루트 암호로 바꿉니다).

password: mysql_root_password

저장 및 종료.

애플리케이션 데이터베이스 생성

다음 rake 명령을 사용하여 애플리케이션의 developmenttest 데이터베이스를 생성합니다.

rake db:create

이렇게 하면 MySQL 서버에 두 개의 데이터베이스가 생성됩니다. 예를 들어 애플리케이션 이름이 "appname\인 경우 "appname_development\ 및 "appname_test\라는 데이터베이스가 생성됩니다.

"'root'@'localhost' 사용자의 액세스가 거부되었습니다(암호 사용: YES)MySQL 설치를 위한 루트 암호를 제공하십시오\라는 오류 메시지가 표시되면 Ctrl-c를 눌러 종료합니다. . 그런 다음 이전 하위 섹션(데이터베이스 연결 구성)을 다시 방문하여 database.yml의 암호가 올바른지 확인하십시오. 암호가 올바른지 확인한 후 응용 프로그램 데이터베이스를 다시 생성하십시오.

테스트 구성

애플리케이션이 MySQL 데이터베이스를 사용할 수 있는지 테스트하는 가장 쉬운 방법은 실행을 시도하는 것입니다.

예를 들어 개발 환경(기본값)을 실행하려면 다음 명령을 사용합니다.

rails server

이렇게 하면 포트 3000의 로컬 호스트에서 Rails 애플리케이션이 시작됩니다.

Rails 애플리케이션이 원격 서버에 있고 웹 브라우저를 통해 액세스하려는 경우 쉬운 방법은 서버의 공용 IP 주소에 바인딩하는 것입니다. 먼저 서버의 공용 IP 주소를 찾은 다음 다음과 같이 rails server 명령과 함께 사용합니다.

rails server --binding=server_public_IP

이제 포트 3000에서 서버의 공용 IP 주소를 통해 웹 브라우저에서 Rails 애플리케이션에 액세스할 수 있어야 합니다.

http://server_public_IP:3000

"Welcome aboard\ Ruby on Rails 페이지가 표시되면 애플리케이션이 올바르게 구성되고 MySQL 데이터베이스에 연결된 것입니다.

결론

이제 Ubuntu 14.04에서 MySQL을 데이터베이스로 사용하여 Ruby on Rails 애플리케이션 개발을 시작할 준비가 되었습니다!

행운을 빌어요!