Kesalahan Menginstal mySql di Ubuntu 16.04

15

Saya telah mengikuti instruksi pada halaman ini untuk menginstal mysql di Ubuntu 16.04.

Saya setengah jalan ke bawah halaman di bagian berjudul "MySQL Install and Configure" dan saya menjalankan perintah sudo apt-get install mysql-server. Namun saya telah menemukan kesalahan, ini adalah output dari kesalahan itu di terminal saya:

Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 41515 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-common (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-client-5.7.
Preparing to unpack .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-client-5.7 (5.7.12-0ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-common (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-5.7.
(Reading database ... 41563 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-client-5.7 (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
mysql_upgrade: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ini adalah pertama kalinya saya mengatur server dan juga menginstal mysql. Tidak yakin apakah ini kemungkinan penyebab kesalahan, tetapi saya sebelumnya telah mencoba menginstal mysql tetapi tidak mengikuti proses LAMP (saya baru mengetahui ini) dan itu tidak berhasil dan saya harus menghapus instalan.

Darren Haynes
sumber
Selamat datang di AskUbuntu. Di log Anda ada garis Access denied for user 'debian-sys-maint'@'localhost'. Dari mana asal pengguna itu? Saya tidak akan berharap untuk menemukannya di sistem Ubuntu.
guntbert
Hai Guntbert - dengan sedikit pencarian sepertinya debian.cnffile itu. Saya menemukan ini stackoverflow.com/questions/11644300/... - dan melihat jawaban yang mendapat 47 poin (bukan jawaban yang diterima) ada ketidakcocokan kata sandi. Saya mencobanya - tidak berhasil, karena saya tidak tahu kata sandi apa itu!
Darren Haynes
Jawaban ini memecahkan masalah bagi saya tanpa membersihkan mysql: /ubuntu//a/793545/597698
Elkana Bardugo

Jawaban:

17

Jawaban ini juga sebagai jawaban untuk peningkatan 16,04 merusak server mysql tetapi saya tidak bisa menjawab karena admin menguncinya ke 10 reputasi.

Kesalahan dalam APT terjadi selama pemutakhiran Ubuntu ke 16,04 (xenial) dan Mysql dari 5,5 ke 5,7. Karena beberapa masalah pengemasan, pemutakhiran APT berakhir dengan limbo karena skrip pemasangan postingan Mysql-server-5.7 gagal diselesaikan.

Untuk mengatasi masalah, coba langkah-langkah ini:

  1. apt purge mysql-server dan apt autoremoveuntuk membersihkan semua jejak MYSQL lama. Data basis data tidak akan dimusnahkan.
  2. Hapus semuanya dari /etc/mysqldirektori.
  3. Pastikan tidak ada paket Mysql lama yang terpasang: dpkg -l | grep mysql
  4. apt install mysql-server untuk memasang

Jika langkah-langkah ini berakhir dengan pemasangan tidak lengkap yang sama, coba langkah berikutnya:

  1. Tail -n 20 /var/log/mysql/error.log
  2. Kesalahan bisa berupa a. kata sandi salah untuk debian-sys-maint b. tidak ada memori untuk Innodb

Memecahkan 2a: Anda perlu memperbarui tabel sistem Mysql dari 5,5 ke 5,7

Edit my.cnf untuk dimasukkan di bawah '[mysqld]' baris "skip-grant-tables" service mysql start,, danmysql_upgrade --force -u root -p

Memecahkan 2b: Anda kekurangan memori untuk kolam Mysql Innodb (apakah Anda menggunakan server ukuran mikro?)

Edit my.cnf untuk dimasukkan di bawah '[mysqld]' baris innodb_buffer_pool_size = 20 jt

kumpulan innodb default adalah 128M, yang ketat di VM 512M

Untuk menghapus kesalahan APT, lakukan pemasangan posting lagi

dpkg --configure -a
Kaceo
sumber
Apakah akan menghapus basis data atau akan tetap aman?
Thirumal
5

Menghapus mysql dan menginstal ulang adalah solusi yang akhirnya saya temukan. Meskipun saya telah mencoba untuk menghapus dan menginstal ulang sekali tidak berhasil (sehingga membawa saya untuk menanyakan pertanyaan ini). Saya mencoba menghapus instalan yang lebih menyeluruh setelah menemukan saran di halaman ini: Hapus instalan MySQL sepenuhnya

Mengikuti petunjuk penghapusan instalasi di sana dan menginstal ulang menyelesaikan masalah.

Darren Haynes
sumber
5

Solusi bagus lainnya:

sudo apt-get purge mysql* && sudo apt-get install mysql-server
Pat McSherry
sumber
3

Ini bekerja untuk saya:

sudo apt-get remove --purge mysql*

Perintah ini akan meminta Anda jika Anda ingin HAPUS database Anda dari /var/lib/mysqldan juga akan menghapus semua contoh lain dari mysql!

Jadi buatlah CADANGAN dari basis data Anda terlebih dahulu!

Setelah ini saya bisa menginstal database dengan mengeluarkan perintah:

sudo apt-get install mysql-server
Michal Przybylowicz
sumber
1

Coba hapus semua paket dan file, lalu instal ulang "server mysql"

sudo apt-get remove --purge mysql-\*
sudo rm -rf /var/lib/mysql

sudo apt-get install mysql-server 
Spl2nky
sumber
1

Pertama, Anda harus menghapus semua paket server mysql:

sudo rm -rf /var/lib/mysql

Kemudian instal:

sudo apt-get install lamp-server^

Atau Anda dapat melakukannya:

sudo apt-get install mysql-server
Tarunkant Gupta
sumber
1
Tolong jangan posting rm -rf tanpa mengatakan informasi apa yang akan dihancurkan oleh perintah ini.
Brian Ng