MySQLのインストールが壊れています。完全に再構成する方法は?


20

ここに私がやった次のコマンドがあります。

$ sudo service mysql start
mysql start/running

$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

$ aptitude search mysql |grep ^i
i   libapache2-mod-auth-mysql       - Module Apache 2 pour l'authentification vi
i   libdbd-mysql-perl               - Perl5 database interface to the MySQL data
i   libmysqlclient16                - MySQL database client library             
i   mysql-client-5.1                - MySQL database client binaries            
i   mysql-client-core-5.1           - MySQL database core client binaries       
i   mysql-common                    - MySQL database common files, e.g. /etc/mys
i   mysql-server-5.1                - MySQL database server binaries and system 
i   mysql-server-core-5.1           - MySQL database server binaries            
i   php5-mysql                      - MySQL module for php5                     

ALM -あなたのmysql.log見つけるcat /var/log/mysql.logとあなたの答えは、ファイルをwiththis編集...
hhlp

5
そこでgrep ^ iを使用した方法が気に入っています。かなりインテリジェント。
ルイスアルバラード

それは正確に何をしますか?aptitudeはインストールツールです。
user4951

@JimThioこれは、この質問に関連するインストール済みパッケージを見つけるためのものです。
モニカの復活-ζ--12年

回答:


16

再インストールする前に、/ var / log / mysqlをチェックして、mysqlが機能しない理由の手がかりを含むログファイルを確認します。ログがない場合、ファイルへのログは設定で有効にされていない可能性があります:Mysqlエラーログの設定

パッケージを再インストールするには、インストールされたバージョンをチェックします

dpkg -l|grep mysql-server

その後、バージョン5.7で使用します

sudo apt-get install mysql-server-5.7 --reinstall

これにより、使用できるパッケージを再構成できない場合

sudo dpkg-reconfigure mysql-server-5.7

sudo dpkg-reconfigure mysql-server-5.1は、11.10から12.04にアップグレードしたときにうまくいきません
でした。mysqld

7

エラー2002(HY000):ソケット '/ tmp / mysql.sock'を介してローカルMySQLサーバーに接続できません(2)

MySQLのインストールでは、ローカル接続用のソケットがある場所を指定できます。更新を行うとき、「ローカルMySQLサーバーにソケットスルーで接続できません」というエラーが表示されることは珍しくありません。この問題を解決する方法を見てみましょう。

エラーは次のようになります。

Mysql-u root-p
Enter password:
ERROR 2002 (HY000): Can not connect to local MySQL server-through socket '/ tmp / mysql.sock' (2)

スルーpsパラメータとそれがある場所で指定されている場合、我々は見ることができます:

# ps -fea | grep mysqld
mysql    17661 14003  1 Feb19 ?        00:24:59 /usr/local/mysql-percona/libexec/mysqld --basedir=/usr/local/mysql-percona --datadir=/var/data/mysql/datadir/data --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log
root     23790  7840  0 09:25 pts/0    00:00:00 grep mysqld

この場合、にあり/var/lib/mysql/mysql.sockます。パラメータとして見つからない場合は、mysqldセクション/etc/my.cnfを調べてパラメータを見つける必要があります。

grep socket /etc/my.cnf
socket=/var/lib/mysql/mysql.sock

どこにあるかがわかっている場合は、同じファイル(/etc/my.cnf)を変更し、パラメーターセクションソケットクライアントを追加する必要があります。

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

1
それは私が答えとして入れようとしていたものです。私はすでに、これがこのようなほとんどすべての関連する問題に対する正しい答えであることを知っています。再び能力を得るとあなたを+1します。
ルイスアルバラード

徹底的な説明をありがとう!私の場合、my.cnfでソケットを指定しても、それをリッスンしませんでした( 'ps'に表示されるパラメーターは空であり、接続できません。回避策:my.cnfのクライアントセクションに 'protocoll = tcp'を追加します。ソケットではなくtcpを使用して強制します
。-タッパー

2

後者の視聴者の場合:
mysql-serverパッケージのアップグレードに失敗したときに同様のエラーが発生しましたが、これで問題が解決したことがわかりました。sudo apt-get install -f動作しない場合は、を試してくださいsudo apt-get purge mysql*。これで、mysql-serverを再インストールできます。


1
sudo apt-get purge mysqlデータベースを保持しないことに注意し てください
ネルソンオワロ

1

私が直面している問題の1つは、どのバージョンで問題が発生しているかを知ることです。これはきちんとしたアイデアでした:

$ aptitude search mysql |grep ^i

しかし、ここで私が問題で重要であることがわかったものです:

$ apt-get --reinstall install mysql-server-5.x

(xはバージョンです。これを追加しないと、間違ったdpkgで作業している可能性があります。


0

これは私のために働いた

sudo apt purge mysql*
sudo apt autoremove
sudo apt autoclean
sudo apt install mysql-server

説明

1)最初のコマンドは、MySQLに関連するすべての設定ファイルを削除します。

2)2番目のものは、不要になったパッケージを削除します。


借り換え[!]:

1)DigitalOcean

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.