Yang lainnya. Sepertinya peningkatan Anda tidak berhasil. Anda mungkin ingin mempertimbangkan untuk melakukan proses pemutakhiran lagi (atau) menginstal ulang 5.7.8-rcversi dan pemulihan dari cadangan lengkap DB.
Rahul
2
apakah Anda menjalankan mysql_upgradeuntuk memastikan bahwa setiap perubahan pada tabel inti / dbs telah dilakukan?
Marc B
ya, saya buat mysql_upgrade, saya coba terakhir dan pasang kembali. Jika tidak berhasil, saya akan menurunkan versi ke versi 5,6
Taz
28
Saya mengalami masalah yang sama, untuk menyelesaikannya, saya jalankan mysql_upgrade -u root -p --force, lalu saya restart server DB.
robregonm
Jika perintah mysql_upgrade tidak berfungsi, maka tabel mysql.performance_schema mungkin rusak. Kami punya masalah ini. Untuk memperbaiki masalah, kami menghapus server database menggunakan perintah: apt-get purge mariadb-client-10.1 mariadb-common mariadb-server-10.1. Ini menghapus semua biner database, konfigurasi, dan file data. Selanjutnya kita menginstal ulang server database dan mengimpor kembali basis data. Setelah itu server database berjalan tanpa masalah
Saya memang perlu me-restart mysqld ( mysql.server restart, karena saya menggunakan instalasi homebrew di os x), jadi ini sangat membantu. Kalau tidak, saya mendapat kesalahan tentang session_variables memiliki struktur yang salah.
Geoffrey Wiseman
Perilaku identik dengan Homebrew pada OS X 10.10.5 (Yosemite). Melakukan peningkatan juga memperbaiki kerusakan di Sequel Pro 1.1 (build 4499) ketika mencoba memuat basis data.
William Turrell
4
Native table 'performance_schema'.'session_variables' has the wrong structure
stephen
8
Jika Anda menggunakan, brew servicesAnda dapat memulai kembali server Anda dengan brew services restart mysql.
Frederik Kammer
1
Ini tidak berfungsi untuk saya, jawaban yang benar diberikan oleh viq. hanya diperlukan untuk mengaktifkan kompatibilitas acara.
kato2
482
Saya dapat masuk ke server mysql setelah menjalankan perintah @robregonm yang disarankan:
Itu bekerja dengan baik. Terima kasih. Saya ingin tahu apa alasannya.
diguage
2
Saya mendapatkan Access denied for user 'root'@'localhost' (using password: YES) while connecting to the MySQL servermeskipun saya menggunakan kata sandi root yang benar. Ada bantuan ?? : - /
sixty4bit
4
@ sixty4bit coba hapus -p
Mike Mellor
1
@NevilleNazerane Saya tidak terbiasa dengan php mudah, tetapi Anda harus dapat menemukan di mana mysql terinstal dan kemudian hanya membuka prompt cdm dan mengubah direktori ke lokasi itu. Sekarang Anda harus dapat menjalankan perintah.
Mihai Caracostea
4
@diguage Alasannya adalah peningkatan versi MySQL telah memperkenalkan skema versi yang tidak kompatibel untuk metadata internal. Bagi saya, saya meningkatkan MySQL 5.6 ke MySQL 5.7 pada Mac menggunakan Homebrew dan direktori data MySQL tidak berubah sehingga versi baru MySQL membaca metadata internal lama tetapi tidak tahu apa yang harus dilakukan - kesalahan yang kami lihat di sini adalah manifestasi dari masalah itu. Setelah mysql_upgradedan restart, semuanya bekerja. Lihat: dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html
Devy
110
mysql -u app -p
mysql>set@@global.show_compatibility_56=ON;
Ini bekerja dengan baik untuk saya! Dan saya tidak perlu me-restart server mysql yang akan sangat merepotkan
anu.agg
3
Maaf, ini adalah solusi yang agak terlalu besar: seperti menggunakan bazoka untuk menembak lalat. Switch kompatibilitas ini memiliki lebih banyak efek, Anda mungkin tidak menginginkan semuanya.
Tuncay Göncüoğlu
@Tuncay Göncüoğlu apa sajakah efek samping ini?
katzmopolitan
@katzmopolitan Baca di sini: dev.mysql.com/doc/refman/5.7/en/… . Perubahan sebagian besar terkait dengan penanganan INFORMATION_SCHEMA (keamanan dll), tetapi ada lebih banyak.
Tuncay Göncüoğlu
Ini juga berhasil bagi saya. Pesan kesalahan yang saya dapatkan adalah dari mysqldump. Setelah saya membuat perubahan yang disarankan mysqldump bekerja. Setelah saya memiliki dump, saya hanya mengubah show_compatibility_56 kembali ke OFF.
Bryan
23
Karena tidak ada jawaban di atas yang benar-benar menjelaskan apa yang terjadi, saya memutuskan untuk berpura-pura dan membawa lebih banyak detail untuk masalah ini.
Ya, solusinya adalah menjalankan perintah Upgrade MySQL, sebagai berikut:, mysql_upgrade -u root -p --forcetetapi apa yang terjadi?
Akar penyebab masalah ini adalah korupsi performance_schema, yang dapat disebabkan oleh:
Korupsi organik (volume terjadi kaboom, bug mesin, masalah driver kernel dll)
Korupsi selama mysql Patch (bukan tidak pernah terjadi hal ini terjadi selama patch mysql, khususnya untuk peningkatan versi utama)
Sederhana "jatuhkan database performance_schema" jelas akan menyebabkan masalah ini, dan itu akan menyajikan gejala yang sama seolah-olah rusak
Masalah ini mungkin telah ada pada database Anda bahkan sebelum tambalan, tetapi apa yang terjadi pada MySQL 5.7.8 secara khusus adalah bahwa flag show_compatibility_56mengubah nilai defaultnya dari yang diubah menjadi ONdefault, menjadi OFF. Bendera ini mengontrol perilaku mesin pada kueri untuk pengaturan dan membaca variabel (sesi dan global) di berbagai Versi MySQL.
Karena MySQL 5.7+ mulai membaca dan menyimpan variabel-variabel ini dan performance_schemabukannya menyala information_schema, flag ini diperkenalkan sebagai ONrilis pertama untuk mengurangi radius ledakan perubahan ini dan untuk memberi tahu pengguna tentang perubahan tersebut dan membiasakan diri dengannya.
OK, tapi mengapa koneksi gagal? Karena tergantung pada driver yang Anda gunakan (dan konfigurasinya), itu mungkin berakhir menjalankan perintah untuk setiap koneksi baru yang dimulai ke database (seperti show variables, misalnya). Karena salah satu dari perintah ini dapat mencoba mengakses yang rusak performance_schema, seluruh koneksi dibatalkan sebelum diinisiasi sepenuhnya.
Jadi, secara ringkas, Anda mungkin (tidak mungkin memberi tahu sekarang) performance_schemaapakah ada yang hilang atau rusak sebelum ditambal. Tambalan ke 5.7.8 kemudian memaksa mesin untuk membaca variabel Anda dari performance_schema(alih-alih information_schema, darimana pembacaannya karena bendera yang diputar ON). Karena performance_schemarusak, koneksi gagal.
Menjalankan peningkatan MySQL adalah pendekatan terbaik, meskipun ada downtime. Menyalakan bendera adalah salah satu opsi, tetapi ia datang dengan implikasinya sendiri seperti yang ditunjukkan pada utas ini.
Keduanya harus bekerja, tetapi konsekuensinya dan tahu pilihan Anda :)
Untuk sistem saya masalah akhirnya adalah bahwa saya masih menginstal Mysql 5.6 dan mysql_upgrade.exe dari instalasi itu dipanggil bukan yang untuk 5.7. Arahkan ke C:\Program Files\MySQL\MySQL Server 5.7\bindan jalankan.\mysql_upgrade.exe -u root
5.7.8-rc
versi dan pemulihan dari cadangan lengkap DB.mysql_upgrade
untuk memastikan bahwa setiap perubahan pada tabel inti / dbs telah dilakukan?mysql_upgrade
, saya coba terakhir dan pasang kembali. Jika tidak berhasil, saya akan menurunkan versi ke versi 5,6mysql_upgrade -u root -p --force
, lalu saya restart server DB.Jawaban:
Mysql_upgrade bekerja untuk saya juga:
Salam, MSz.
sumber
mysql.server restart
, karena saya menggunakan instalasi homebrew di os x), jadi ini sangat membantu. Kalau tidak, saya mendapat kesalahan tentang session_variables memiliki struktur yang salah.Native table 'performance_schema'.'session_variables' has the wrong structure
brew services
Anda dapat memulai kembali server Anda denganbrew services restart mysql
.Saya dapat masuk ke server mysql setelah menjalankan perintah @robregonm yang disarankan:
Diperlukan restart server MySQL.
sumber
Access denied for user 'root'@'localhost' (using password: YES) while connecting to the MySQL server
meskipun saya menggunakan kata sandi root yang benar. Ada bantuan ?? : - /mysql_upgrade
dan restart, semuanya bekerja. Lihat: dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.htmlsesuai http://bugs.mysql.com/bug.php?id=78159 bekerja untuk saya.
sumber
Karena tidak ada jawaban di atas yang benar-benar menjelaskan apa yang terjadi, saya memutuskan untuk berpura-pura dan membawa lebih banyak detail untuk masalah ini.
Ya, solusinya adalah menjalankan perintah Upgrade MySQL, sebagai berikut:,
mysql_upgrade -u root -p --force
tetapi apa yang terjadi?Akar penyebab masalah ini adalah korupsi
performance_schema
, yang dapat disebabkan oleh:Masalah ini mungkin telah ada pada database Anda bahkan sebelum tambalan, tetapi apa yang terjadi pada MySQL 5.7.8 secara khusus adalah bahwa flag
show_compatibility_56
mengubah nilai defaultnya dari yang diubah menjadiON
default, menjadiOFF
. Bendera ini mengontrol perilaku mesin pada kueri untuk pengaturan dan membaca variabel (sesi dan global) di berbagai Versi MySQL.Karena MySQL 5.7+ mulai membaca dan menyimpan variabel-variabel ini dan
performance_schema
bukannya menyalainformation_schema
, flag ini diperkenalkan sebagaiON
rilis pertama untuk mengurangi radius ledakan perubahan ini dan untuk memberi tahu pengguna tentang perubahan tersebut dan membiasakan diri dengannya.OK, tapi mengapa koneksi gagal? Karena tergantung pada driver yang Anda gunakan (dan konfigurasinya), itu mungkin berakhir menjalankan perintah untuk setiap koneksi baru yang dimulai ke database (seperti
show variables
, misalnya). Karena salah satu dari perintah ini dapat mencoba mengakses yang rusakperformance_schema
, seluruh koneksi dibatalkan sebelum diinisiasi sepenuhnya.Jadi, secara ringkas, Anda mungkin (tidak mungkin memberi tahu sekarang)
performance_schema
apakah ada yang hilang atau rusak sebelum ditambal. Tambalan ke 5.7.8 kemudian memaksa mesin untuk membaca variabel Anda dariperformance_schema
(alih-alihinformation_schema
, darimana pembacaannya karena bendera yang diputarON
). Karenaperformance_schema
rusak, koneksi gagal.Menjalankan peningkatan MySQL adalah pendekatan terbaik, meskipun ada downtime. Menyalakan bendera adalah salah satu opsi, tetapi ia datang dengan implikasinya sendiri seperti yang ditunjukkan pada utas ini.
Keduanya harus bekerja, tetapi konsekuensinya dan tahu pilihan Anda :)
sumber
Ikuti langkah-langkah ini tanpa
-p
:mysql_upgrade -u root
systemctl restart mysqld
Saya punya masalah yang sama dan berhasil!
sumber
systemctl restart mysqld
saja tidak berhasil.systemctl restart mysql
Sebagai pertanyaan sixty4bit, jika pengguna root mysql Anda terlihat salah konfigurasi, coba instal ekstensi konfigurator dari sumber resmi mysql:
https://dev.mysql.com/downloads/repo/apt/
Ini akan membantu Anda mengatur kata sandi pengguna root baru.
Pastikan untuk memperbarui repositori Anda (debian / ubuntu):
sumber
Untuk sistem saya masalah akhirnya adalah bahwa saya masih menginstal Mysql 5.6 dan mysql_upgrade.exe dari instalasi itu dipanggil bukan yang untuk 5.7. Arahkan ke
C:\Program Files\MySQL\MySQL Server 5.7\bin
dan jalankan.\mysql_upgrade.exe -u root
sumber
Jika, saat menggunakan
mysql_upgrade -u root -p --force
perintah, Anda mendapatkan kesalahan ini:tambahkan saja
sudo
sebelum perintah. Itu berhasil bagi saya, dan saya memecahkan masalah saya. Jadi, ini:sudo mysql_upgrade -u root -p --force
:)sumber
terkadang
mysql_upgrade -u root -p --force
tidak cukup benar,silakan merujuk pertanyaan ini: Tabel 'performance_schema.session_variables' tidak ada
sesuai dengan itu:
cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
mysql_upgrade -u root -p --force
sumber