Mengapa saya tidak bisa menghentikan layanan MySQL di Debian?


11

Saya hanya mencoba untuk meningkatkan dari debian squeeze ke unstable dengan mengganti 'squeeze' dengan 'unstable' in /etc/apt/sources.list. Pembaruan berjalan lancar kecuali untuk MySQL, yang gagal karena tidak bisa menghentikan MySQL.

/etc/init.d/mysql stophanya mengembalikan itu gagal, tetapi jika saya mencoba untuk mendapatkan status dengan /etc/init.d/mysql statusitu memberi saya kesalahan ini:

me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

MySQL berjalan dengan baik, dan saya memeriksa izin untuk debian-sys-Maint di phpmyadmin dan diizinkan untuk melakukan segalanya, tetapi hanya terhubung dari localhost.

Jawaban:


6

Coba ini:

  1. sudo cat /etc/mysql/debian.cnfdan cari kata sandi yang tercantum di bawah bagian [client]dan[mysql_upgrade]

  2. mysql -u root -p password menjadi kata sandi root MySQL asli

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

Itulah perbaikannya dan inilah alasan di baliknya, jika Anda tertarik.


Seperti disebutkan di bawah, ini seharusnyaGRANT ALL PRIVILEGES ON *.*
Dave

2

Pembaruan untuk jawabannya. Pada langkah 3, saya harus menggunakan

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

Ada tanda bintang di sekitar periode setelah "ON". Bekerja untuk MySql 5.1


1

Manual Referensi MySQL mengatakan Anda bisa melakukan ini:

  1. Masuk ke sistem Anda sebagai pengguna Unix yang mysqlddijalankan oleh server (misalnya, mysql).
  2. Temukan .pidfile yang berisi ID proses server. Lokasi dan nama pasti dari file ini tergantung pada distribusi, nama host, dan konfigurasi Anda. Lokasi umum adalah /var/lib/mysql/, /var/run/mysqld/, dan /usr/local/mysql/data/. Secara umum, nama file memiliki ekstensi .piddan dimulai dengan salah satu mysqldatau nama host sistem Anda.

Anda dapat menghentikan server MySQL dengan mengirimkan normal kill (not kill -9) ke proses mysqld, menggunakan nama path file .pid dalam perintah berikut:

    kill `cat /mysql-data-directory/host_name.pid`

Bagian ini: cat /mysql-data-directory/host_name.pidmengembalikan konten file, yang merupakan id proses.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.