部署 数据库报错

服务器上安装的ruby版本过于老旧导致的myslq2 无法正常load?

老教程的ruby版本是 ruby 2.4.10p364 (2020-03-31 revision 67879) [x86_64-linux-gnu] 这个版本都无法兼容 rails 5

说不定是这个原因...看看如何升级服务器的ruby版本?

顺便说一句
ruby -v 看ruby版本
rails -v查看rails版本
mysql --version查看安装的mysql版本

嗯?等等...报错一直显示mysql2不存在...难道是因为...服务器装的是mysql而不是mysql2...

不对 看到这句

Installing the libmysqlclient-dev gives you the necessary files to compile the mysql2 gem which is what Rails will use to connect to MySQL when you setup your Rails app.

所以是有途径的...这个libmysqlclient-dev我也是安装了的...

所以最后果然还是服务器ruby version的锅吗?

Newer versions should work as well. Just make sure to use the same version as your Production machine.

sudo apt update
sudo apt install ruby-full

直接用着两行代码 把服务器的ruby版本提到最高了

还是报错...唉

发现服务器 「安装 Nginx + Passenger 网站服务器」这个步骤都有点问题
去查比较新的步骤操作看看

比如 cat /etc/apt/sources.list.d/passenger.list 需要看到的结果是 deb https://oss-binaries.phusionpassenger.com/apt/passenger focal main

注意最后两个词是 focal main 而不是bionic main

把服务器又重整了一遍, 然后出现了新的报错

哈哈哈哈 估计果然需要本机跟服务器环境全部一致 不然各种出问题啊 好麻烦

然后看到这个 感觉有救

Using Rbenv. A script that allows you to have multiple Ruby versions installed on the same machine.

看来还有个配套的...估计两个都要安装比较好, 果然还是老老实实去查符合最新版本的Deploying a Rails App on Ubuntu 20.04之类的比较好 教程太老了...

Using RVM (ruby enVironment manager). A heavier and more feature-packed script that allows you to install, manage, and work with multiple ruby versions.

嗯,现在认真看看内容 这两都是用来安装ruby到Ubuntu上的方法而已...唉...

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
git clone https://github.com/rbenv/rbenv-vars.git ~/.rbenv/plugins/rbenv-vars
exec $SHELL
rbenv install 2.6.7
rbenv global 2.6.7
ruby -v
# ruby 2.6.7

用这招把服务器的deploy用户旗下ruby改成了2.6.7版本了

然后要改bundler

# This installs the latest Bundler, currently 2.x.
gem install bundler
# For older apps that require Bundler 1.x, you can install it as well.
gem install bundler -v 1.17.3
# Test and make sure bundler is installed correctly, you should see a version number.
bundle -v
# Bundler version 2.0

If it tells you bundle not found, run rbenv rehash and try again.

尝试列出各种的gem报错

run gem update 看到各种报错 列举一下

首先是libv8

ERROR:  Error installing libv8:
        ERROR: Failed to build gem native extension.

好像 v8 也出问题

/Users/RealAnalysis/.rvm/gems/ruby-2.6.3-version/gems/libv8-6.7.288.46.1/ext/libv8/builder.rb:79:in `block in setup_build_deps!': unable to fetch v8 source (RuntimeError)

再就是 directory 也有事

Warnings:
Conflicting directory /Users/RealAnalysis/.rvm/gems/ruby-2.6.3-version/gems/libv8-6.7.288.46.1/vendor/v8 moved to /Users/RealAnalysis/.rvm/gems/ruby-2.6.3-version/gems/libv8-6.7.288.46.1/vendor/_bad_scm/v8RpNZpu.

看着像是rvm没有安装好?!

嗯 突然一个新的想法 会不会是RoR跟更新后的Mac系统出了什么冲突导致的?!Mac系统自动升级容易出一堆bug啊我记得...总之 不管什么情况 debug到底!

不放弃!

参考到一个日文blog跑了一个

mysql.server status

发现数据库的服务器没在run的

mysql.server start

发现报错

结果可能是数据库的server吗?!
sudo rm -rf /usr/local/var/mysql
brew reinstall mysql

跑完后再尝试

mysql.server start

至少mysql的server正常运行了

虽然报错还是一样的

myslq2啊...

再跟mysql2玩儿几天 学够本了 实在不行为了行程考虑换成pg数据库试看看哈哈哈哈

尝试Debug这么久,最后都查看了Rails101的教程去了,看到一句话...

这...有道理

果断开本机的server 一看...运行出问题...

数据库果然不能乱设置...

为了查看数据库问题 本机跑了一下


这个报错也是迷人的...

看来在debug过程中 乱改了太多东西 都互相冲突了

懒得再去修不知道三天内乱改了哪步导致的,全部砍掉

git branch -D deploy

你可能感兴趣的:(部署 数据库报错)