Ubuntu 14.04使用Rails串連MySQL資料庫
rails內建的sqlite3各方面都不錯,但是免費版缺少一個致命功能:加密碼!雖說第三方有編譯好的二進位版的加密版,但咱先不折騰鳥;直接上mysql吧.
Ubuntu安裝mysql非常簡單,先不聊;先說一下rails如何改為mysql驅動,用以下一條命令足矣:
rails new xxx -d mysql
因為新版的rails對mysql的支援使用的gem是mysql2,所以要在Gemfile中加上gem 'mysql2'一句;不過有了上面那條命令,rails會很聰明的自動在Gemfile中加上這句,so不用勞神鳥.
rails自然要下載安裝mysql2包,不過這裡會報錯,提示找不到mysql的標頭檔,看來需要下載mysql dev包之類的東西,可以用如下命令安裝:
sudo apt-get install libmysqlclient-dev
這次rails new沒問題了,接下來我們建立一個model:
rails g scaffold book name:string count:integer price:integer remark:string
下面要建立一個新的資料庫:
rake db:migrate
出錯鳥,提示無法串連到mysql,mysql服務不在監聽狀態!好吧,我們現在開始安裝mysql伺服器端吧:
sudo apt-get install mysql-server
接著是mysql的用戶端:
apt-get isntall mysql-client
在安裝伺服器端時會提示輸入root密碼,我這裡輸入的是abc,如果是純數位話(比如123),在rails的database.yml配置中要用'123'括起來(具體我也沒有試,網上其他人的經驗之談).安裝完伺服器端可以用如下命令確定是否mysql後台開始監聽:
sudo netstat -tap|grep mysql
如果mysql伺服器安裝完畢且處於監聽狀態的話,現在可以建立rails中的資料庫啦:
rake db:create -v
rake db:migrate
linux下mysql資料庫路徑位置在:/var/lib/mysql
我們可以確認下建立的的mysql資料庫;開啟終端,輸入指令:
mysql -u root -p
mysql會提示輸入密碼來登陸,輸入我們之前設定的密碼abc,成功登陸mysql;接下來可以使用show databases;查看存在的資料庫:
mysql> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| db_test_development |
| db_test_test |
| mysql |
| performance_schema |
+---------------------+
5 rows in set (0.00 sec)
使用use mysql命令選擇一個當前的資料庫:
mysql> use db_test_development;
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> show tables;
+-------------------------------+
| Tables_in_db_test_development |
+-------------------------------+
| books |
| schema_migrations |
+-------------------------------+
2 rows in set (0.00 sec)
最後讓我們看一下books表的結構:
mysql> show columns from books;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| count | int(11) | YES | | NULL | |
| price | int(11) | YES | | NULL | |
| remark | varchar(255) | YES | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
Ubuntu下Apache伺服器安裝以及使用Passenger外掛程式部署Rails應用
CentOS系統搭建Ruby On Rails平台
Ubuntu下搭建Ruby On Rails
《Web開發敏捷之道應用Rails進行敏捷Web開發(原書第4版)》.((美)Sam Ruby).[PDF]+原始碼
Rails 的詳細介紹:請點這裡
Rails 的:請點這裡