Instalasi MySQL saya rusak. Bagaimana cara mengkonfigurasi ulang sepenuhnya?

20

Inilah perintah-perintah berikut yang telah saya lakukan.

$ 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
sumber
alm - temukan mysql.log Anda cat /var/log/mysql.logdan edit jawaban Anda dengan file ini ....
hhlp
5
Saya suka cara Anda menggunakan grep ^ i di sana. Cukup cerdas.
Luis Alvarado
Apa fungsinya? aptitude adalah alat instalasi.
user4951
@ Jim Thio Itu untuk menemukan paket yang diinstal terkait dengan pertanyaan ini.
Pasang kembali Monica - ζ--

Jawaban:

16

Sebelum menginstal ulang periksa / var / log / mysql untuk file log yang mungkin berisi petunjuk mengapa mysql tidak berfungsi. Jika tidak ada log, log ke file mungkin tidak diaktifkan di konfigurasi Anda: Konfigurasikan Log Kesalahan Mysql

Untuk menginstal ulang paket, periksa versi yang diinstal dengan

dpkg -l|grep mysql-server

kemudian untuk versi 5.7 digunakan

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

Jika ini tidak memungkinkan Anda untuk mengkonfigurasi ulang paket yang dapat Anda gunakan

sudo dpkg-reconfigure mysql-server-5.7
Ciaran Liedeman
sumber
sudo dpkg-mengkonfigurasi mysql-server-5.1 melakukan trik untuk saya ketika saya memutakhirkan dari 11,10 menjadi 12,04 saya mysqld tidak akan mulai dan saya dipaksa untuk secara manual sudo mysqld
Hanynowsky
7

GALAT 2002 (HY000): Tidak dapat terhubung ke soket server-through MySQL lokal '/ tmp / mysql.sock' (2)

Dalam instalasi MySQL dapat menentukan di mana kita akan memiliki soket untuk koneksi lokal. Ketika membuat pembaruan tidak jarang melihat kesalahan "Tidak dapat terhubung ke server MySQL socket-through lokal." Mari kita lihat bagaimana menyelesaikan masalah ini.

Kesalahannya terlihat seperti ini:

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

melalui pskita dapat melihat apakah ditentukan oleh parameter dan tempat di mana itu:

# 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

Dalam hal ini yang kita lihat adalah di /var/lib/mysql/mysql.sock. Jika tidak ditemukan sebagai parameter harus melihat ke bagian mysqld /etc/my.cnfuntuk menemukan parameter:

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

Jika kita tahu di mana itu kita perlu memodifikasi file yang sama ( /etc/my.cnf) dan menambahkan klien bagian soket parameter:

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
hhlp
sumber
1
Itulah yang akan saya berikan sebagai jawaban. Saya sudah tahu ini adalah jawaban yang benar untuk hampir semua masalah terkait seperti ini. Akan memberi Anda +1 saat saya mendapatkan kemampuan lagi.
Luis Alvarado
terima kasih untuk penjelasannya! dalam kasus saya bahkan jika saya menentukan soket di my.cnf itu tidak mendengarkannya (params yang ditunjukkan dalam 'ps' kosong dan tidak ada koneksi yang mungkin. solusi: tambahkan 'protocoll = tcp' ke bagian klien di my.cnf untuk paksa menggunakan tcp dan bukan soket
Tapper
2

Untuk pemirsa yang terakhir:
Saya sampai pada kesalahan yang sama ketika saya gagal memutakhirkan paket mysql-server , tetapi saya menemukan ini menyelesaikan masalah saya . Ketika sudo apt-get install -ftidak berhasil, cobalah sudo apt-get purge mysql*. Sekarang Anda dapat menginstal ulang mysql-server.

artificerpi
sumber
1
harap dicatat bahwa kami sudo apt-get purge mysqltidak akan menyimpan basis data Anda
Nelson Owalo
1

Salah satu masalah yang saya hadapi adalah mengetahui versi mana yang saya miliki masalah. Ini adalah ide yang rapi:

$ aptitude search mysql |grep ^i

Tapi inilah yang saya temukan sangat penting dalam masalah ini:

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

(di mana x adalah versinya. Jika Anda tidak menambahkan ini, Anda bisa menggunakan dpkg yang salah.

Netsec
sumber
0

Ini berhasil untuk saya

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

Deskripsi

1) Perintah pertama menghapus semua yang berhubungan dengan MySQL dengan file konfigurasinya.

2) Yang kedua menghapus paket-paket yang tidak diperlukan lagi.


Refrences [!]:

1) DigitalOcean

A - O
sumber