前置き
この記事は、sudoコマンドを多く使います。
自分は新しく構築した環境下で行ったため、データが消える心配はありませんでしたが、以下のコマンドを試すことで、データが消えてしまったり、壊れてしまう可能性があります。
実行は自己責任でお願いいたします。
至らない点がありましたら、教えていただけたらと思います。
問題
環境:ubuntu16.04
mySQL5.7を使用しようとしたところ、
$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
というエラーが、、、。
アンインストールする前に実行したこと
よくあるエラーみたいなので、
https://www.youtube.com/watch?v=oXjJRrbKjp0
https://qiita.com/donaldchi/items/afeabaffc8be39577ef0
をみて、解決を試みました。
$ sudo mkdir /var/run/mysqld
$ sudo touch /var/run/mysqld/mysqld.sock
$ sudo chown mysql:mysql /var/run/mysqld/
$ sudo /etc/init.d/mysql restart
[....] Restarting mysql (via systemctl): mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
failed!
、、、。
ほかにもいろいろ試したのですが、うまく行かないので、いっそのことアンインストールしてしまうことにしました。
アンインストール編
$ sudo apt-get remove --purge mysql-server*
$ mysql-common
$ sudo apt-get autoremove --purge
$ sudo rm -r /etc/mysql
$ sudo rm -r /var/lib/mysql
参考:https://a-zumi.net/ubuntu-mysql-server-purge/
こちらのコマンドでアンストールをしました。
再インストール編
再インストールの基本的な手順は以下のとおりです。
$ sudo apt-get update
$ sudo apt-get install mysql-server
$ mysql_secure_installation
参考:https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-16-04
これでうまく行くかとおもいきや、、。
$ sudo apt-get install mysql-server
こちらのコマンドを試したところ、、。
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります:
mysql-server : 依存: mysql-server-5.7 しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。
依存関係のエラーが、、。
依存関係のエラー解決編
apt-getではこれ以上対応ができなさそうなので、aptitudeを使います。
aptitudeを導入し、パッケージをアップデートするのに、実行したコマンドは以下の通りです。
$ sudo apt-get install aptitude
$ sudo aptitude update
$ sudo aptitude safe-upgrade
これを行った後、mysql-serverをインストールします。
$ sudo aptitude install mysql-server
そうすると、「以下のアクションでこれらの依存関係の問題は解決されます:」
と、解決方法を提示してくれるので、ひたすらyを押していきます。
あとは、mysqlのパスワードを設定していけば無事、
mysql -u root -p
でmysqlに入れるようになります。
参考:https://server-setting.info/debian/apt-get-upgrade-error-loop.html