美文网首页
部署 数据库报错

部署 数据库报错

作者: RealAnalysis | 来源:发表于2021-05-15 13:18 被阅读0次

    服务器上安装的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
    

    相关文章

      网友评论

          本文标题:部署 数据库报错

          本文链接:https://www.haomeiwen.com/subject/oklvdltx.html