Tidak dapat menetapkan kata sandi untuk pengguna "root" mysql

16

Saya baru di Ubuntu. Saya menjalankan Ubuntu 12.10. Saya mencoba menginstal apache, php, mysql. Namun saya telah menginstal apache dan itu berjalan dengan sempurna.

sudo apt-get install apache2

Tetapi ketika saya mencoba menginstal mysql menggunakan perintah berikut

sudo apt-get install mysql-server 

Setelah mengunduh, ia meminta kata sandi tetapi setelah memasukkan dan mengonfirmasi kata sandi. Saya mendapatkan pesan kesalahan berikut.

Tidak dapat menetapkan kata sandi untuk pengguna "root" Mysql

Terjadi kesalahan saat mengatur kata sandi untuk mysql
pengguna administratif. Ini mungkin terjadi karena akun sudah memiliki kata sandi, atau karena masalah komunikasi dengan server Mysql.
Anda harus memeriksa kata sandi akun setelah instalasi paket.
Silakan baca file /usr/share/doc/mysql-server-5.5/README.Debian untuk informasi lebih lanjut.

setelah mengklik tombol ok pada prompt saya mendapatkan pesan berikut di terminal

Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
start: Job failed to start
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing mysql-server-5.5 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
mysql-server-5.5
E: Sub-process /usr/bin/dpkg returned an error code (1)

Log kesalahan Mysql mengatakan

130209 14:26:37 [Note] Plugin 'FEDERATED' is disabled.
130209 14:26:37 InnoDB: The InnoDB memory heap is disabled
130209 14:26:37 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130209 14:26:37 InnoDB: Compressed tables use zlib 1.2.7
130209 14:26:37 InnoDB: Using Linux native AIO
mysqld: Can't create/write to file '/tmp/ibNuz7q0' (Errcode: 13)
130209 14:26:37  InnoDB: Error: unable to create temporary file; errno: 13
130209 14:26:37 [ERROR] Plugin 'InnoDB' init function returned error.
130209 14:26:37 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130209 14:26:37 [ERROR] Unknown/unsupported storage engine: InnoDB
130209 14:26:37 [ERROR] Aborting

Saya telah mencari masalah ini, tetapi tidak ada yang berhasil untuk saya. Tolong bantu.

Devendra Verma
sumber
1
Periksa apakah Anda mysql-serversudah menginstal dengan menjalankan ps -e | grep mysqld. Jika Anda melihat output apa pun itu berarti sudah diinstal.
hijau
Saya tidak mendapatkan hasil untuk ini
Devendra Verma
Kesalahan mysql yang Anda poskan dapat mengindikasikan masalah dengan Anda /etc/mysql/my.cnf. Jika Anda memodifikasi file itu atau file apa pun di direktori / etc / mysql, pulihkan yang asli dan coba lagi.
Richard Ayotte
Nathan, saya menghadapi masalah yang sama dalam posting ini dan saya sudah mengikuti instruksi yang sama seperti yang dikirim green7 dan Anda juga. Saya bahkan tidak mengerti mengapa mysql berhenti bekerja. Saya akan senang jika Anda bisa memberi saya bantuan lebih lanjut. Sunting: Hanya untuk memberi tahu Anda bahwa semua itu terjadi karena saya mulai menerima dari mana pun pesan berikut ini ketika saya mencoba menginstal mysql: ERROR: 1146 Tabel 'mysql.user' tidak ada Terima kasih sebelumnya.
tidak dapat menjawab karena reputasi rendah. Intisari ini berfungsi untuk saya gist.github.com/ervinb/63138a504da11a9c27af
gayavat

Jawaban:

25

Masalah pengaturan kata sandi root yang sama di sini, masalah saya mungkin disebabkan oleh instalasi manual yang gagal dari server mysql 5.6 sebelumnya. Menghapus instalan mysql yang menyeluruh bukanlah tugas yang mudah. Saya membersihkan / menginstal ulang selama berjam-jam kemudian akhirnya menyelesaikannya dengan

sudo dpkg --purge mysql-client-core-5.5 # or alternative version
sudo dpkg --purge mysql-client
sudo dpkg --purge mysql-server-core-5.5 # or alternative version
sudo dpkg --purge mysql-common

Pada dasarnya saya cukup mengetik

sudo dpkg --purge mysql # followed by two tabs

Kemudian --purgesetiap paket terminal otomatis dilengkapi. Bersihkan mysql-commonakhirnya karena beberapa masalah ketergantungan.

Gunakan dpkgperintah di atas sebagai tambahan

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

Saya juga mencoba metode Greq

sudo rm -rf /etc/mysql

Hapus folder mysql dari / var / lib

sudo rm -rf /var/lib/mysql/

Pada titik ini, untuk memastikan mysql sepenuhnya dihapus, tanyakan

which mysql
mysql --version

Yang pertama seharusnya tidak menghasilkan output, bukan folder. Yang kedua harus mengembalikan mysql tidak diinstal bukan nomor versi. Kalau tidak, penghapusan masih belum lengkap.

Signifikansi dpkg --purgeadalah, ketika menggunakan apt-getsendiri, which mysqldan mysql --versionberperilaku seperti mysql masih ada.

Sebelum menginstal ulang, konfigurasikan ulang dpkg dan perbarui

sudo dpkg --configure -a
sudo apt-get update

Masalah akhirnya terselesaikan. Semoga bermanfaat bagi orang lain.

Sophia Feng
sumber
3
Dalam kasus saya, ketika: sudo dpkg --purge mysql-common Gagal dengan: dpkg: masalah ketergantungan mencegah penghapusan mysql-common: mysql-client-5.5 tergantung pada mysql-common (> = 5.5.35-0ubuntu0.12.04. 2). libmysqlclient18 tergantung pada mysql-common (> = 5.5.35-0ubuntu0.12.04.2). dpkg: kesalahan pemrosesan mysql-common (--purge): masalah ketergantungan - tidak menghapus Kesalahan yang ditemui saat memproses: mysql-common
ses
Ini juga bekerja untuk saya.
Michael Lindman
Saya telah mencari beberapa waktu untuk satu set instruksi yang akan sepenuhnya menyelesaikan situasi. Ini berfungsi seperti yang dijelaskan. Terima kasih.
Matt Setter
Bekerja untukku terima kasih bung! Sangat disayangkan bahwa linux melakukan pekerjaan yang berantakan dengan penempatan file!
southerton
akhirnya bekerja untuk saya. Saya pikir reboot setelah semua yang mungkin bisa membantu saya!
Danimal
5

Anda harus menghapus mysql sepenuhnya. Percayalah, saya mencobanya. dpkg tidak akan melakukan ini sendirian.

Lihat

/programming/10853004/removing-mysql-5-5-completely

Jika Anda sedang terburu-buru

sudo service mysql stop  #or mysqld
sudo killall -9 mysql
sudo killall -9 mysqld
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo deluser mysql
sudo rm -rf /var/lib/mysql
sudo apt-get purge mysql-server-core-5.5
sudo apt-get purge mysql-client-core-5.5
Pedro Braconnot
sumber
Anda tuan, adalah pahlawan! Saya menghabiskan berjam-jam mencari Google dan mencoba berbagai saran di mana-mana, dan hanya milik Anda yang benar-benar berfungsi! Saya pikir perbedaannya terletak pada menghapus pengguna mysql, karena saya sudah mencoba sebagian besar opsi lain. PS: Saya harus melakukan kill -9beberapa proses sebelum menjalankan deluser mysqlperintah dengan sukses.
Shautieh
3

Saya pikir alasannya adalah karena mysqltidak dapat mengakses /tmp/direktori Anda , seperti yang tertulis di baris

mysqld: Tidak dapat membuat / menulis ke file '/ tmp / ibNuz7q0' (Errcode: 13)

Jalankan perintah berikut di terminal:

sudo su
chown root: root / tmp
chmod 1777 / tmp
/ usr / sbin / mysqld &

Penjelasan :

  • sudo su: Untuk menjalankan perintah berikut sebagai root.
  • chown root:root /tmp: Membuat pengguna rootdari rootkelompok pemilik /tmp.
  • chmod 1777 /tmp: Ubah izin /tmpagar dapat diakses oleh semua pengguna dan hanya pemilik atau yang rootdapat menghapus file di direktori itu. (Lebih lanjut tentang izin file di sini )
  • /usr/sbin/mysqld &: Mulai mysqlddaemon.
hijau
sumber
setelah memasukkan perintah terakhir saya mendapatkan pesan ini # /etc/init.d mysqld start bash: /etc/init.d: ​​Adalah direktori
Devendra Verma
mengubah jawabannya
hijau
Saya mendapatkan output ini setelah / usr / sbin / mysqld & / usr / sbin / mysqld & [1] 3497. Bagaimana saya memeriksa apakah mysql sedang berjalan
Devendra Verma
Untuk memeriksa apakah mysql Anda berjalan, jalankan ps -e | grep mysqlddan jika Anda mendapatkan beberapa output, itu berjalan dengan baik.
hijau
terima kasih @ green7 di sini adalah output ps -e | grep mysqld 1075? 00:00:04 mysqld
Devendra Verma
2

Saya bergulat selama beberapa jam semalam dengan ini, dan membaca semua yang Google miliki dalam indeksnya tentang masalah tersebut.

Saya menginstal ulang mysql 20 kali. Itu mungkin figur literal.

Akhirnya, salah satu dari ini, atau keduanya, memperbaiki masalah (setelah mencopot / membersihkan / membakar mysql):

  1. sudo rm -rf /etc/mysql (ini tidak dihapus setelah pembersihan)
  2. Saya kemudian mematikan server dan mengubah ukuran instance VM saya dari 512MB ke 1GB (RAM).

Setelah itu, saya berlari sudo aptitude install mysql-serverdan akhirnya berhasil diinstal:

$ sudo aptitude install mysql-server
[sudo] password for [REDACTED]: 
The following NEW packages will be installed:
  libdbd-mysql-perl{a} libmysqlclient18{a} mysql-client-5.5{a} mysql-common{a} mysql-server mysql-server-5.5{a} mysql-server-core-5.5{a} 
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,589 kB of archives. After unpacking 94.6 MB will be used.
Do you want to continue? [Y/n/?] Y
Get: 1 http://ftp.us.debian.org/debian/ wheezy/main mysql-common all 5.5.31+dfsg-0+wheezy1 [85.3 kB]
Get: 2 http://ftp.us.debian.org/debian/ wheezy/main libmysqlclient18 amd64 5.5.31+dfsg-0+wheezy1 [687 kB]
Get: 3 http://ftp.us.debian.org/debian/ wheezy/main libdbd-mysql-perl amd64 4.021-1+b1 [126 kB]
Get: 4 http://ftp.us.debian.org/debian/ wheezy/main mysql-client-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,923 kB]
Get: 5 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-core-5.5 amd64 5.5.31+dfsg-0+wheezy1 [3,784 kB]
Get: 6 http://ftp.us.debian.org/debian/ wheezy/main mysql-server-5.5 amd64 5.5.31+dfsg-0+wheezy1 [1,900 kB]
Get: 7 http://ftp.us.debian.org/debian/ wheezy/main mysql-server all 5.5.31+dfsg-0+wheezy1 [83.6 kB]
Fetched 8,589 kB in 2s (3,068 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 52430 files and directories currently installed.)
Unpacking mysql-common (from .../mysql-common_5.5.31+dfsg-0+wheezy1_all.deb) ...
Selecting previously unselected package libmysqlclient18:amd64.
Unpacking libmysqlclient18:amd64 (from .../libmysqlclient18_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package libdbd-mysql-perl.
Unpacking libdbd-mysql-perl (from .../libdbd-mysql-perl_4.021-1+b1_amd64.deb) ...
Selecting previously unselected package mysql-client-5.5.
Unpacking mysql-client-5.5 (from .../mysql-client-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server-core-5.5.
Unpacking mysql-server-core-5.5 (from .../mysql-server-core-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Processing triggers for man-db ...
Setting up mysql-common (5.5.31+dfsg-0+wheezy1) ...
Selecting previously unselected package mysql-server-5.5.
(Reading database ... 52616 files and directories currently installed.)
Unpacking mysql-server-5.5 (from .../mysql-server-5.5_5.5.31+dfsg-0+wheezy1_amd64.deb) ...
Selecting previously unselected package mysql-server.
Unpacking mysql-server (from .../mysql-server_5.5.31+dfsg-0+wheezy1_all.deb) ...
Processing triggers for man-db ...
Setting up libmysqlclient18:amd64 (5.5.31+dfsg-0+wheezy1) ...
Setting up libdbd-mysql-perl (4.021-1+b1) ...
Setting up mysql-client-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-core-5.5 (5.5.31+dfsg-0+wheezy1) ...
Setting up mysql-server-5.5 (5.5.31+dfsg-0+wheezy1) ...
Stopping MySQL database server: mysqld.
131124 15:39:56 [Note] Plugin 'FEDERATED' is disabled.
131124 15:39:56 InnoDB: The InnoDB memory heap is disabled
131124 15:39:56 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131124 15:39:56 InnoDB: Compressed tables use zlib 1.2.7
131124 15:39:56 InnoDB: Using Linux native AIO
131124 15:39:56 InnoDB: Initializing buffer pool, size = 128.0M
131124 15:39:56 InnoDB: Completed initialization of buffer pool
131124 15:39:56 InnoDB: highest supported file format is Barracuda.
131124 15:39:56  InnoDB: Waiting for the background threads to start
131124 15:39:57 InnoDB: 5.5.31 started; log sequence number 1595675
131124 15:39:57  InnoDB: Starting shutdown...
131124 15:39:58  InnoDB: Shutdown completed; log sequence number 1595675
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
Setting up mysql-server (5.5.31+dfsg-0+wheezy1) ...
Greg
sumber
1

Ketik sudo apt-get purge mysql-server && sudo apt-get install mysql-serverjika itu tidak berhasil, silakan tinggalkan komentar pada jawaban saya dan saya akan bekerja dengan Anda untuk menyelesaikan masalah ini.

Nathan Suchy
sumber
0

Skrip instalasi untuk semua versi Ubuntu setelah 12,04 tidak mengikuti proses pengaturan yang sama seperti 12,04. Dalam 12,04 Anda secara eksplisit diminta untuk mengatur kata sandi mysql selama instalasi. Untuk 12.10 dan setelahnya hanya meminta kata sandi root mysql, tapi apa kata sandi itu? Skrip instalasi adalah langkah mundur. Saya sarankan menginstal 12,04 di mesin virtual dan menginstal mysql di sana. Jika Anda seperti saya dan menggunakan ini bersama dengan Drupal pasti tetap pada 12,04.

Gary
sumber
0

Solusi berbeda untuk mereka yang masih memiliki masalah. Semoga saya dapat membantu mereka yang mencoba menginstal ulang Mysql. Catatan, Ini adalah misi mencari dan menghancurkan. Jadi lelahlah. Dengan asumsi root Anda:

apt-get purge mysql*
apt-get purge dbconfig-common #the screen used for mysql password
find / -name *mysql*          #delete any traces of mysql
#insert apt-get cleanups, autoremove,updates etc.

Awalnya, sesuatu yang tersisa mengganggu startup saya di mysqlserver-5.5. Perintah-perintah ini akhirnya menyelesaikan masalah untuk saya sendiri.

mastash3ff
sumber