RaspbianのMariadb:ソケットを介してローカルMySQLサーバーに接続できません。

RaspbianのMariadb:ソケットを介してローカルMySQLサーバーに接続できません。

私は最新のRaspbianを実行している私の家Raspberry piの「きれいな」イメージを設定していますが、mariadbデータベースをインストールするときに小さな問題が見つかりました。

これまで私がとった措置は次のとおりです。

  sudo apt-get install -y mariadb-server

  sudo nano /etc/mysql/my.cnf

my.cnf に次の行を追加します。

  [mysqld]
  datadir=/mnt/RaspberryData/mysql
  socket=/mnt/RaspberryData/mysql/mysql.sock
  [client]
  port=3306
  socket=/mnt/RaspberryData/mysql/mysql.sock

パスには、/mnt/RaspberryData/mysqlハードリンクを介して構成された以前のインストールのデータベース情報が含まれています。これは問題になることも、そうでない場合もあります。

次に、次を実行します。

  sudo sytemctl start mariadb
  journalctl -u mariadb

これは私が問題に直面した時です。

Jun 22 19:18:33 raspberrypi systemd[1]: Starting MariaDB 10.3.22 database server...
Jun 22 19:18:34 raspberrypi mysqld[2623]: 2020-06-22 19:18:34 0 [Note] /usr/sbin/mysqld (mysqld 10.3.22-MariaDB-0+deb10u1) starting as process 2623 ...
Jun 22 19:18:35 raspberrypi systemd[1]: Started MariaDB 10.3.22 database server.
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: Looking for 'mysql' as: /usr/bin/mysql
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: Version check failed. Got the following error when calling the 'mysql' command line client
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Jun 22 19:18:35 raspberrypi /etc/mysql/debian-start[2662]: FATAL ERROR: Upgrade failed

ご覧のとおり、ソケットを介して接続を試みる一種の更新プロセスがありますが、その/var/run/mysqld/mysqld.sockパスには何もありません(mysqld.pidファイルのみ)。

ある場所から別の場所にデータを移動する方法のガイドでは、実際にデータベースに入ってクエリを実行できるため、一部のプロセスなどが省略されているようです。それでは、私がここで何を見逃しているのでしょうか?

ベストアンサー1

さて、私の構成に残ったものを見つけました。

これはおそらく少し過剰になる可能性があることに注意してください(読み取り:必要以上のファイルを修正)。しかし、より賢い人が私を教えていない限り、私はこれに満足するでしょう:

それでは、ファイルの読み取りを始めましょうmy.cnf

# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.

私の問題は、定義されたソケットを使用するアップグレードプロセスがあることです。どこかに。明らかに「どこか」は「設定ファイルに」を意味するので、ファイルを詳しく見ました。

引き続きsudo nanoリストされているファイル(特に以下のファイル)を見ると、/etc/mysql/mariadb.conf.d/*.cnf/ run /フォルダの元の値を保持するソケットに関するいくつかのエントリが表示されました。だから「もしあれば」という新しいフォルダに変更しました。判明しました。ファイルの1つが私が書いたべきコメントとしてリストされていましたNot forget to update debian.cnf if you change the socket。データベースビルダー、ありがとう。なぜなら、あなたが私に本当の答えを与えたからです。なぜならdebian.cnf、途方もない「触れないでください」コメントがあるにもかかわらずこの部分が含まれているからです。以下:

[mysql_upgrade]
host     = localhost
user     = root
password =
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

これが崩壊が起こる方法のようです。

したがって、要約するには、リストされているすべてのファイルを確認my.cnfし、ソケットの値を変更してください。返品debian.cnf。十分に冒険心が感じられたら変化を与え、debian.cnf何が起こるのか教えてください。

これでデータベースが動作しているので、まだインストールする必要があることがたくさんあります。

おすすめ記事