haloji86
@haloji86 (Haloji 86)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ラズパイ4でMattermostのサーバー起動したらmariaDB関連っぽいエラーが出た件

解決したいこと

初心者です。初投稿がこれってなんかあれですが…。
ラズパイでチャットサーバー構築したいな、と思ってMattermostを使い始めました。
それでMattermostのサーバー起動したらエラーが出ました。


環境

バージョンはわからないんですけど、mariaDBとMattermostを使ってます。
つい最近インストールしたので最新版ではあると思うのですが…(←初心者がいきなりこういうことやろうとするからこうなる)。
ラズパイは4Bを使ってます。普通のRaspbianですが、こちらもバージョンはわからないです。(誰かやり方わかる人教えてくれレベル)


参考サイト

ここ見ながらやってました。

で、ここ

$ cd /opt/mattermost/
$ sudo -u mattermost ./bin/mattermost

でつまずきました。
$ sudo -u mattermost ./bin/mattermostを実行したらエラーって感じです。


出てきたエラー

エラー
/opt/mattermost $ sudo -u mattermost ./bin/mattermost
{"timestamp":"2021-11-18 13:04:48.369 +09:00","level":"info","msg":"Server is initializing...","caller":"app/server.go:265","go_version":"go1.16.7"}
{"timestamp":"2021-11-18 13:04:48.369 +09:00","level":"info","msg":"Starting websocket hubs","caller":"app/web_hub.go:93","number_of_hubs":8}
{"timestamp":"2021-11-18 13:04:48.369 +09:00","level":"warn","msg":"Sentry reporting is enabled, but SENTRY_DSN is not set. Disabling reporting.","caller":"app/server.go:274"}
{"timestamp":"2021-11-18 13:04:48.371 +09:00","level":"info","msg":"Loaded system translations","caller":"i18n/i18n.go:93","for locale":"en","from locale":"/opt/mattermost/i18n/en.json"}
{"timestamp":"2021-11-18 13:04:48.403 +09:00","level":"info","msg":"Pinging SQL","caller":"sqlstore/store.go:253","database":"master"}
{"timestamp":"2021-11-18 13:04:48.421 +09:00","level":"info","msg":"Pinging SQL","caller":"sqlstore/store.go:253","database":"migrations"}
{"timestamp":"2021-11-18 13:04:49.124 +09:00","level":"fatal","msg":"Error creating database tables.","caller":"sqlstore/store.go:200","error":"Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'json, `LastUpdateAt` bigint, `SchemeUser` tinyint, `SchemeAdmin` tinyint, `Schem' at line 1"}

最後のところのエラーはGoogle翻訳にかけると

最終行のエラーをGoogle翻訳
SQL構文にエラーがあります。 MariaDBサーバーのバージョンに対応するマニュアルで、
「json」、「LastUpdateAt」、「bigint」、「SchemeUser」、「tinyint」、「SchemeAdmin」、「tinyint」、「Schem」
の1行目で使用する正しい構文を確認してください。

と出ます。どうやら構文の問題っぽいのですが、コードとかはMattermost内のconfig.jsonをいじった記憶しかありません…。
しかもどのファイルのどこを指しているのかが全くわかりません…。
これが進まないことには何もできないので、どうかご教示よろしくお願いします。
(忙しいので、ご回答に気づけないかもしれません…。)

0

4Answer

SQL の json のあたりでエラーが出ているっぽいので、 json 型をサポートしていない MariaDB 10.2 未満を使っているのでは。アップデートしてみてください。

1Like

Comments

  1. @haloji86

    Questioner

    ありがとうございます!試してみます!

どれをインストールすればいいのかがわかりません…。

それはどれも使えません。ファイル名の amd64 はどの CPU アーキテクチャ向けにビルドされたかを表しますが、 ラズパイで動かすにはここが arm64 のものが必要です。(ちなみに bullseye, buster, stretch は Debian のメジャーバージョンのコードネームです。 lsb_release -a を実行すると Raspbian のバージョンが分かるのでそれに合ったものを使います。)

元々どうやって MariaDB をインストールしましたか? その方法でアップデートできませんか?

1Like

Comments

  1. @haloji86

    Questioner

    返信遅くなりすみません!
    GitHubのこのURLに飛んで入れろと言われましたね…。
    確かVer.6あたりだった気がします。
  2. @haloji86

    Questioner

    ちなみにlsb_release -aを実行すると

    No LSB modules are available.
    Distributor ID: Raspbian
    Description: Raspbian GNU/Linux 10 (buster)
    Release: 10
    Codename: buster

    とでます。私の読解力ですと
    「Raspbian10 で Linux の方は buster ですよ」
    って言われている感じに見えます。
  3. 大体合ってます。 Raspbian は Debian という Linux ディストリビューションをラズパイ向けにチューニングしたものなので、そっちのバージョンが表示されます。これは Debian バージョン10(コードネーム buster)をベースにしているということですね。

もし sudo apt install mariadb-server でインストールしたなら sudo apt upgrade でアップグレードできます。ただこの方法では古めの MariaDB が入るので問題が解決しないかもしれません。

その場合、 sudo apt remove mariadb-server でいったんアンインストールして、 https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/ の手順に従えば最新版がインストールできます。これは英語の長い記事なので、細かい設定が不要なら日本語の要約を見た方が早いと思います↓。 Ubuntu 前提で書かれていますが Raspbian でもまったく同じ手順でいけます。

1Like

Comments

  1. @haloji86

    Questioner

    ありがとうございます!
    やってみます!
  2. @haloji86

    Questioner

    詰まりました。
    プラットフォーム的な問題があるようです。
    エラーで
    https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/#platform-support
    に飛ばされたあと
    https://mariadb.org/download/?t=repo-config
    に飛ばされました。
    先程のlsb_release -aの実行結果からすると、
    https://mariadb.org/download/?t=repo-config&d=Debian+10+%22buster%22&v=10.6&r_m=yamagata-university
    こんな感じのオプション付けでしょうか…。
  3. はい、 buster 向けのものを使ってください。

    そういえば現在の MariaDB のバージョンを確認していませんでした。 mysql --version を実行すると
    mysql Ver 15.1 Distrib 10.X.Y-MariaDB, ...
    のように表示されます。 Distrib 以降が MariaDB のバージョンです。
  4. @haloji86

    Questioner

    インストールしていない段階で10.0.28と出ました。
    やはり10.2未満ですね。
    このあとインストールしてみます!
  5. @haloji86

    Questioner

    $ sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.6/debian buster main'

    を実行した結果、

    Traceback (most recent call last):
    File "/usr/bin/add-apt-repository", line 95, in <module>
    sp = SoftwareProperties(options=options)
    File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 109, in __init__
    self.reload_sourceslist()
    File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 599, in reload_sourceslist
    self.distro.get_sources(self.sourceslist)
    File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 93, in get_sources
    (self.id, self.codename))
    aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Raspbian/buster

    と出ました。
    「Raspbian用はここにはないよ」という感じでしょうか…。
    もしそうだとしたら山形大学から他のところに変更しないといけませんよね。

    よろしくお願いします。
  6. Debian 用のものを入れれば動くんですが、それが置いてあるリポジトリの URL を apt に登録するコマンド add-apt-repository がエラーを出してますね。以下のコマンド2つを順に実行すれば代用できると思います。

    sudo echo 'deb [arch=amd64,arm64,ppc64el] https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.6/debian buster main' > /etc/apt/sources.list.d/mariadb.list

    sudo echo 'deb-src https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.6/debian buster main' >> /etc/apt/sources.list.d/mariadb.list

    その後 sudo apt update && sudo apt install mariadb-server してください。

    参考 https://qiita.com/hnw/items/734f82bee26a40269c1b
  7. @haloji86

    Questioner

    sudo echo ... をどちらも実行したあと、
    sudo apt install mariadb-serverを実行すると、

    インストールすることができないパッケージがありました。おそらく、あり得
    ない状況を要求したか、(不安定版ディストリビューションを使用しているの
    であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
    動されていないことが考えられます。
    以下の情報がこの問題を解決するために役立つかもしれません:

    以下のパッケージには満たせない依存関係があります:
    mariadb-server : 依存: mariadb-server-10.6 (>= 1:10.6.5+maria~buster) しかし、インストールすることができません
    E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

    と出ました。
    どういうことなのか日本語なのにわかりません…。
    前にインストールしたものが影響しているのでしょうか…。
  8. そうかもしれませんがちょっと分からないですね。
    aptitude を使うと解決方法を提示してくれるかもしれません。

    sudo install aptitude
    sudo aptitude install mariadb-server

    参考 https://blog.tizen.moe/entry/2016/02/13/202938
  9. あるいは mariadb 10.5 系を試すとか。

    sudo echo 'deb [arch=amd64,arm64,ppc64el] https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.5/debian buster main' > /etc/apt/sources.list.d/mariadb.list

    sudo echo 'deb-src https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.5/debian buster main' >> /etc/apt/sources.list.d/mariadb.list

    (上の方で実行した sudo echo ... と比べると URL のバージョン部分だけ10.5に変わっています)

    sudo apt update && sudo apt install mariadb-server
  10. @haloji86

    Questioner

    そうですね…。
    依存関係がどうのこうのって言われてるので方法とかパッケージとか変われば解決しそうだな…。という初心者思考です。
    とりあえず全部試してみます!
    ありがとうございます!
  11. @haloji86

    Questioner

    返信遅くなりすみません!
    sudo aptitude install mariadb-serverを実行した結果、
    「 mariadb-server : 依存: mariadb-server-10.6 (>= 1:10.6.5+maria~buster) いずれの利用可能なパッケージからも提供されていない仮想パッケージです」
    と出ました。やはり依存関係が影響して正しくインストールできていないようです。
    バージョン的な問題が強そうなので、このあと10.5をインストールしてみようと思います。
  12. @haloji86

    Questioner

    10.5でも依存関係のエラーが出ました。ftp.yz.yamagata-u.ac.jp からインストールするのは諦めたほうがいいのかな…という感じです。
  13. @haloji86

    Questioner

    手動インストールも試してみたのですが、「パッケージが見つかりません」なんたら〜と出ました。
  14. @haloji86

    Questioner

    考えてみれば、そうですね…。所詮初心者思考ですので、@uasi 様に従いたいと思います。
    ただ、Raspbianで色々やってきたので(←何を)、あまりデータ削除はしたくないですね…。
    諦めた方がよさそうでしょうか…。
  15. @haloji86

    Questioner

    「もうMattermost使えれば何でもいいわーい!(←深夜テンション)」という投げやりな心が勝ちました。PostgreSQL、試してみます!
  16. @haloji86

    Questioner

    またまた返信遅くなってしまい申し訳ありません。
    実行結果です。

    $ psql -V
    psql (PostgreSQL) 11.14 (Raspbian 11.14-0+deb10u1)

    勝ちましたね(←まだエラー出る可能性あるぞ)。
  17. いけそうな感じがしてきましたね!
  18. @haloji86

    Questioner

    はい!かなりいい感じに進んでます!

    さて問題の
    sudo -u mattermost ./bin/mattermost
    までたどりつきましたが、実行はちゃんと出来てるっぽいです!
    ただ、

    root@ラズパイ:/opt/mattermost# sudo -u mattermost ./bin/mattermost
    ./bin/mattermost: 1: ./bin/mattermost: ELF: not found
    ./bin/mattermost: 1: ./bin/mattermost: �ؠ#: not found
    ./bin/mattermost: 2: ./bin/mattermost: : not found
    ./bin/mattermost: 3: ./bin/mattermost:����o��!���X
    �@�!@���
    v: not found
    ./bin/mattermost: 4: ./bin/mattermost:x��!����A: not found
    ./bin/mattermost: 2: ./bin/mattermost: @$: not found
    ./bin/mattermost: 6: ./bin/mattermost: Syntax error: word unexpected (expecting ")")

    っていうのが出てきました。中身が悪いように見えますが…。
  19. @haloji86

    Questioner

    あ!not foundってファイルがないってことか…?
  20. @haloji86

    Questioner

    やはりbinフォルダーにmattermostなるものがなかったですね。
    どこにあるんだこれ。
  21. @haloji86

    Questioner

    見つけました!/opt/mattermost/binでしたね。
    ディレクトリを設定してもファイルはそのままってことか…。
    (完全に独り言)

    とりあえず./opt/mattermost/bin/mattermostにチェンジしてリトライしてみます!
  22. バイナリを間違ってシェルスクリプトとして解釈し、存在しない ELF コマンドを実行しようとしてエラーが出てますね。

    https://github.com/mattermost/mattermost-docker/issues/387

    ここに同様のエラーの報告があります。 AMD64 向けのバイナリを ARM で実行しようとするとこうなるようです。
  23. @haloji86

    Questioner

    あ、本当ですね。全く同じエラーが出てます。
    さっきチェンジした結果

    root@ラズパイ:/opt/mattermost# sudo -u mattermost ./opt/mattermost/bin/mattermost
    sudo: ./opt/mattermost/bin/mattermost: コマンドが見つかりません

    って出ましたね。読みが外れてちょっと悔しい。
  24. @haloji86

    Questioner

    送ってくださったGitHubの最後の方を(Google先生の力を借りて)見てみると

    Mattermost DockerイメージはAMD64バイナリを使用しているため、RaspberryPIでは動作しないと思います。

    って出ましたね。
    …えっできないだと?!(ここまで来たのに…)
  25. Mattermost 公式の ARM 向けバイナリは提供されていないようですが、非公式にバイナリをビルドして配布している人がいます。

    https://github.com/SmartHoneybee/ubiquitous-memory/releases

    これの mattermost-v6.1.0-linux-arm64.tar.gz を使うと動くかもしれません。
  26. @haloji86

    Questioner

    ん?見たことあるような…。ちょっと確認してきます。
  27. @haloji86

    Questioner

    やっぱ当たってました。
    このページの一番上にある
    「Raspberry PiにMattermostを導入して、一人でチャットを楽しもう | まいまい堂@ドラクエ10」
    に同じリンクが載ってます。
    ダメだ悪循環陥った気がする。
  28. @haloji86

    Questioner

    …頭を冷やして考えろhaloji、
    よく考えたらSQLでエラー出てるんだからmattermost変えるだけなら行けるはずでは?
  29. 記事に従ったとすると ...-arm.tar.gz を使ってませんか? arm ではなく arm64 の方を使うといけるはずです。
  30. @haloji86

    Questioner

    完全に従ってたのでそういうことになりますね。
    @uasi 様が「-arm64でやってね」とおっしゃっていたのでそれをダウンロードして/optに展開しました。
    実行できるかな…。(ドキドキ)
  31. @haloji86

    Questioner

    お決まりの展開と化してきましたエラーさん。
    root@ラズパイ:/opt/mattermost# sudo -u mattermost ./bin/mattermost
    ./bin/mattermost: 1: ./bin/mattermost: Syntax error: word unexpected (expecting ")")
    これ見たことあるぞ。このコメから13個上ですね。
  32. @haloji86

    Questioner

    構文エラーでおかしくなってるっぽいように見えます。
  33. アーキテクチャが違う実行ファイルを実行すると普通は分かりやすく Exec format error が出るんですが、 sudo をつけて実行するとなぜか構文エラーが出るようですね。

    $ bin/mattermost
    bash: bin/mattermost: cannot execute binary file: Exec format error

    $ sudo bin/mattermost
    bin/mattermost: 1: Syntax error: word unexpected (expecting ")")
  34. すみません、完全に勘違いしてました。 64-bit CPU でも 32-bit カーネルなら 32-bit 向けのバイナリを使わないといけません。つまり arm64 ではなく arm でよかったんです。でもそれだと昨日のエラーに戻りそうなんですが、思い返してみると一番最初の質問文では実行はできてましたよね:

    /opt/mattermost $ sudo -u mattermost ./bin/mattermost
    {"timestamp":"2021-11-18 13:04:48.369 +09:00","level":"info","msg":"Server is initializing...","caller":"app/server.go:265","go_version":"go1.16.7"}
    ...

    それがなぜ動かなくなったのか……
  35. ちなみにカーネルが 32-bit か 64-bit かは lscpu コマンドを実行して Architecture 行を見れば分かります。 armv7l なら 32-bit で armv8 なら 64-bit です。

    最近の Raspberry Pi OS は 32-bit 版と 64-bit 版の両方があるらしいですが、 Raspbian だと 32-bit しかないかもなと。
  36. @haloji86

    Questioner

    確かにあれが正規でしたもんね…。
    armで再チャレンジしてみます。
  37. @haloji86

    Questioner

    待ちに待った
    Server is listening on [::]:8065
    を見ることができました!
    ここまで本当にありがとうございました!
    詰まる可能性あるので動作確認までは開けておきます。
  38. おめでとうございます!
  39. @haloji86

    Questioner

    ありがとうございます!

色々と調べた結果、こちらまではたどりつけたのですが、
mariadb-10.6.5-debian-bullseye-amd64-debs.tar
mariadb-10.6.5-debian-buster-amd64-debs.tar
mariadb-10.6.5-debian-stretch-amd64-debs.tar
のどれをインストールすればいいのかがわかりません…。
よろしくお願いします。

0Like

Your answer might help someone💌