質問: ### 前提・実現したいこと ラズパイでDB環境を構築したいです。 なんでもよかったのですがとりあえずMariaDBをインストールしました。 ``` sudo apt-get install mariadb-server-10.0 ``` ### 発生している問題・エラーメッセージ 早速ログインしようとしたところ、以下のエラーが出ました。 ``` mysql -u root ERROR 1698 (28000): Access denied for user 'root'@'localhost' ``` ### 試したこと このエラーでググって出てきたことを試してみました。 1: ps ax | grep mysqld ``` 5946 pts/0 S+ 0:00 grep --color=auto mysqld ``` と出ました。mysqldだけピンク色で表示されました。 どうやらサービスはちゃんと動いているみたいです。 2: sudo systemctl restart mysql コマンド自体にエラーは出ませんでしたがタイトルのエラーは変わらずです。 3: mysqld_safe --skip-grant-tables 対話モードに突入しmysqlと打つと以下のエラーが出ました。 ``` ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2"No such file or directory") ``` 確認したところ/var/run/mysqldというディレクトリは存在しましたが、中身は空でした。 なお、このエラーでググったところ別のソケットを参照しているのでは とのことだったので設定ファイルらしき物を見てみましたが、 ``` cat /etc/mysql/my.cnf ``` シャープマークから始まっていない行は以下の2行だけでした ``` !includedir /etc/mysq/conf.d !includedir /etc/mysq/mariadb.conf.d ``` この先よくわからずです。 ### ちなみに ラズパイはOSインストールしたてで、 デフォルトのpiというユーザーしかいないはずですが、 これはsqlのログインユーザとは関係あるでしょうか。
回答: スーパーユーザーで実行してみてください。 sudo mysql -u root > > これはsqlのログインユーザとは関係あるでしょうか。 > > > unix_socket プラグインを使うとログインユーザーとsqlのユーザが一致していることを検証して 違うとはじいてくれるみたいです。 sqlアクセス用ののユーザを作ってそれで実行を推奨しているみたいですが、ラズパイでそれはどうなの? と思わないでもないです。