windows10でruby on rails使えるようにします。
まずubuntuを入れます。(省略)
rbenvでRubyをインストールします。(省略)
node.jsとかBundlerを入れます。(省略)
$ mkdir rails_app
$ cd rails_app
$ bundle init
Gemfileが出来るので編集
# gem "rails"
の行のコメントアウトを外す
$ bundle install --path vendor/bundle
$ bundle exec rails new . -B -d mysql --skip-turbolinks --skip-test
→ERROR
Could not find gem 'mysql2 (>= 0.4.4)' in any of the gem sources listed in your Gemfile.が出る
MYSQLを導入します。
https://dev.mysql.com/downloads/repo/apt/
で、パッケージをダウンロードします。
下のコマンドでインストールします。
インストール中にバージョン選択を求められます。
$ sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
$ sudo apt-get install mysql-server
$ sudo apt-get install libmysqld-dev
MySQLを起動します。
$ sudo /etc/init.d/mysql start
bundle installした後、DBを作成。
$ bundle exec rake db:create
RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment
Access denied for user 'root'@'localhost'
Couldn't create 'rails_app_development' database. Please check your configuration.
rake aborted!
Mysql2::Error: Access denied for user 'root'@'localhost'
:
こんなのがでるので
$ bundle
$ bundle exec rails webpacker:install
もう一度bundle exec rake db:create
warning Skipping preferred cache folder "/home/user/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
Access denied for user 'root'@'localhost'
Couldn't create 'rails_app_development' database. Please check your configuration.
rake aborted!
Mysql2::Error: Access denied for user 'root'@'localhost'
:
権限がないので、ユーザー作って権限を与えます
sql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
sql> GRANT ALL ON rails_app_development.* TO 'user'@'localhost';
config/database.ymlの設定と合わます
rails_app_testでも権限ないとでるようなので、
もう一回権限付与します。するとbundle exec rake db:create出来ました
$ bin/rails s
でサーバーがちゃんと起動したので問題ないはず
http://localhost:3000/
に繋ぎます
おわり
いろいろ試しましたが、上の手順で良さそうです
嵌りに嵌りました
ubuntu version18.04
rbenv 2.6.3
Rails 6.0.0
10.1.41-MariaDB
-追記-
postgresqlだったらすんなり行けました。
はぁ・・・
その他
UbuntuでCドライブ配下に移動
$ cd /mnt/c
MySQLが起動しない
$ sudo /etc/init.d/mysql start
→ERROR
下を実行
$ sudo apt clean
$ sudo apt install mariadb-common mariadb-server mariadb-client
mysql -u root する ERROR 1698 (28000): Access denied for user 'root'@'localhost' こんなのがでる
→ sudo mysql -u root だと入れた
Ubuntu特有の初期設定らしい