Perubahan Tidak Kompatibel. Layanan pfs_plugin_table
, tidak digunakan lagi sejak MySQL 8. 0. 14, dihapus dalam rilis ini
Plugin atau komponen yang menggunakan layanan ini harus diperbarui untuk menggunakan pfs_plugin_table_v1
dan pfs_plugin_column_
*
sebagai gantinya. [Bug #34361827]
Perubahan Penting; . Peristiwa log kueri yang difilter oleh database default kapan pun atau digunakan termasuk XA START
, XA END
,
mysqlcheck --fix-db-names --fix-table-names --all-databases0, dan
mysqlcheck --fix-db-names --fix-table-names --all-databases1 [tetapi bukan
mysqlcheck --fix-db-names --fix-table-names --all-databases2 atau
mysqlcheck --fix-db-names --fix-table-names --all-databases3], terlepas dari format log biner
Ini dapat menyebabkan salah satu masalah yang tercantum di sini
Ketika
XA START
atauXA END
difilter, urutan pernyataan XA dalam bagian pertama transaksi menjadi tidak valid, yang membuat replika berhenti dengan kesalahanKetika
XA START
danXA END
dipertahankan sementaramysqlcheck --fix-db-names --fix-table-names --all-databases
0 ataumysqlcheck --fix-db-names --fix-table-names --all-databases
1 disaring, maka transaksi dapat tetap dalam status siap tanpa batas waktu pada replika
Untuk mencegah salah satu dari masalah ini terjadi, kami tidak lagi memfilter XA START
, XA END
,
mysqlcheck --fix-db-names --fix-table-names --all-databases0, atau
mysqlcheck --fix-db-names --fix-table-names --all-databases1 pernyataan oleh database default dengan
--replicate-do-db
atau ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
5. [Bug #106201, Bug #33764808]InnoDB. Setelah memutakhirkan ke rilis yang mendukung versi baris untuk kolom yang ditambahkan atau dihapus menggunakan
ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
6, kegagalan terjadi selama operasi ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
7 instan pada tabel dengan kolom yang dapat dibatalkan dan kolom yang ditambahkan secara instan. [Bug #34488482]InnoDB. Menambahkan kolom virtual dan menghapus kolom dalam pernyataan
ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
8 yang sama menimbulkan kegagalan pernyataan debug yang tidak valid. [Bug #34467592]InnoDB. Posisi fisik kolom tidak disetel dengan benar setelah menjatuhkan kolom dan mengganti nama kolom yang ada menjadi nama kolom yang dijatuhkan. [Bug #34463089]
InnoDB. Kesalahan Valgrind yang terdeteksi di
ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
9 telah diperbaiki. [Bug #34327575]InnoDB. Operasi DDL pada tabel terpartisi yang rusak memunculkan kegagalan pernyataan. [Bug #34293555]
InnoDB. Pelanggaran urutan kait blok indeks selama pengambilan sampel histogram memblokir penyisipan bersamaan dan dapat menyebabkan kegagalan kebuntuan. [Bug #34282448, Bug #34174927, Bug #107299]
InnoDB. Operasi
ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
_8 yang dijalankan saat operasi pemuatan data sedang berlangsung menimbulkan kegagalan pernyataan. [Bug #34267618]InnoDB. pfs_plugin_table
1 kebocoran memori selama inisialisasi server MySQL, yang diidentifikasi oleh pembuatan Address Sanitizer [ASAN], telah diperbaiki. [Bug #34156050]
InnoDB. Selama pemulihan, objek tablespace yang terkait dengan halaman undo tablespace terenkripsi yang diambil dari disk tidak berisi kunci enkripsi yang diperlukan untuk mendekripsi halaman, mengakibatkan kegagalan. [Bug #34148143]
InnoDB. Dalam build debug, pemindaian b-tree yang menurun memunculkan kegagalan pernyataan debug. [Bug #34144951]
InnoDB. Fungsi pfs_plugin_table
_2 gagal menangani argumen yang tidak valid. [Bug #34052884]
InnoDB. Kolom yang ditambahkan menggunakan pfs_plugin_table
_3 terlihat dalam tampilan baca yang dibuat sebelum operasi DDL yang menambahkan kolom. [Bug #33937504]
InnoDB. Terjadi kegagalan saat memutakhirkan instans MySQL dengan MySQL 5. 6 direktori data berisi tabel buatan pengguna dengan ID tabel tertentu. Penetapan ID tabel tersebut menghasilkan penugasan ID tabel kamus data yang bertentangan saat memutakhirkan dari MySQL 5. 7 hingga MySQL 8. 0
Terima kasih kepada Rahul Malik atas kontribusinya. [Bug #33919635]
InnoDB. Blok buffer yang berisi halaman tabel sementara intrinsik dipindahkan selama penelusuran halaman, menyebabkan kegagalan pernyataan. [Bug #33715694]
InnoDB. Menjatuhkan tabel dengan tablespace yang dibuang menyebabkan kegagalan pernyataan. [Bug #33232978]
InnoDB. Pembacaan I/O halaman tidak selesai sebelum shutdown mencapai fase flush menyebabkan kegagalan pernyataan dalam kasus di mana halaman telah mengubah penggabungan buffer untuk diselesaikan setelah pembacaan I/O. [Bug #33192496]
InnoDB. Pelanggaran urutan kait indeks di pfs_plugin_table
4 menyebabkan kegagalan pernyataan. [Bug #32912868]
InnoDB. Operasi pfs_plugin_table
_5 gagal membebaskan mutex yang diperoleh dalam kasus tertentu. [Bug #107858, Bug #34380370]
InnoDB. Dalam build debug, mengimpor tablespace tanpa file pfs_plugin_table
6 untuk tabel dengan kolom yang ditambahkan atau dihapus secara instan menimbulkan kegagalan pernyataan. [Bug #107517, Bug #34307874]
InnoDB. Kebocoran memori potensial pada fungsi pfs_plugin_table
_7 telah diperbaiki
Terima kasih kepada Alex Xing atas kontribusinya. [Bug #106952, Bug #34051207]
InnoDB. Terjadi kegagalan pernyataan debug saat mengulangi penghapusan ruang selama pemulihan. [Bug #103482, Bug #32819101]
InnoDB. Pesan startup pfs_plugin_table
_1 yang menentukan jumlah kumpulan objek telah dihapus untuk menghindari kebingungan dengan jumlah instance kumpulan buffer. [Bug #80248, Bug #22653060]
Mempartisi. Tabel yang dipartisi tidak dipartisi ulang seperti yang diharapkan ketika pernyataan
ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
8 bertindak untuk mengubah set karakter dari salah satu kolomnya. Akar penyebabnya adalah, saat menentukan apakah perubahan rangkaian karakter dapat dilakukan sebagai operasi perubahan di tempat, kami tidak mempertimbangkan apakah ada kolom yang terpengaruh oleh perubahan rangkaian karakter yang merupakan bagian dari ekspresi partisi tabel. Karena perubahan seperti itu dapat menyebabkan partisi ulang tabel, itu tidak dapat dilakukan di tempat. Sekarang ketika perubahan dalam rangkaian karakter direncanakan, kami juga memeriksa apakah ini memengaruhi kolom apa pun yang merupakan bagian dari ekspresi partisi; . [Bug #106884, Bug #34031693]Replikasi. Memperbaiki kesalahan internal dalam penanganan informasi replikasi. [Bug #34214416]
Replikasi. Ketika satu peristiwa menyebabkan beberapa pembaruan ke baris tabel yang sama pada replika, perubahan tidak dapat diterapkan jika replika memiliki kunci utama pada tabel yang tidak ada di sumbernya. Algoritme pencarian baris berbasis hash sekarang beroperasi dalam situasi ini bahkan jika kunci utama ada di tabel replika. [Bug #34114296]
Replikasi. Saat satu pernyataan menghasilkan beberapa peristiwa tulis untuk tabel berbeda pada replika, kolom penambahan otomatis tambahan di tabel replika hanya dibersihkan untuk peristiwa terakhir yang dibuat. Mereka tidak dibersihkan sama sekali jika acara terakhir tidak melibatkan tabel dengan kolom penambahan otomatis tambahan. Proses pembersihan sekarang selalu dilakukan untuk beberapa peristiwa penulisan. [Bug #34095290]
Replikasi. Kesalahan yang menyesatkan dikembalikan ke klien jika variabel sistem pfs_plugin_table_v1
0 disetel, dan waktu tunggu perubahan tampilan habis. Kesalahan, dan kesalahan terkait, telah diperbarui sehingga tidak menunjukkan bahwa nilai yang diberikan untuk variabel sistem salah. [Bug #34091087]
Replikasi. Kolom FILTER_RULE di tabel Skema Kinerja pfs_plugin_table_v1
1 menunjukkan data yang salah untuk filter yang aturannya tidak ada. Tabel sekarang menampilkan string kosong dalam situasi ini. [Bug #33885484]
Replikasi. Itu mungkin dalam beberapa kasus yang jarang terjadi kesalahan pembilasan atau sinkronisasi untuk server untuk mencoba memperbarui titik akhir log biner menggunakan nilai yang tidak valid untuk file dan posisi di dalam file, yang mengarah ke perilaku yang tidak ditentukan
Untuk mengatasi masalah ini, kami sekarang memanggil fungsi internal pfs_plugin_table_v1
2, pfs_plugin_table_v1
3] hanya ketika parameter file dan posisi diketahui valid. [Bug #33818238]
Replikasi. Operasi yang menggunakan SID dari peristiwa log GTID yang tidak valid terkadang menyebabkan perilaku yang tidak terdefinisi
Kami mengatasi masalah ini dengan memastikan bahwa SID selalu diinisialisasi, bahkan jika itu milik peristiwa log GTID yang tidak valid. [Bug #33784022]
Replikasi. Perhitungan panjang maksimum variabel status [pfs_plugin_table_v1
4] tidak dilakukan dengan benar
Masalah yang diperbaiki dalam perbaikan ini tercantum di sini
dan membutuhkan 2 byte [satu untuk tipe ID, satu untuk variabel]
Panjang maksimum dihitung sebagai 255 bukannya
pfs_plugin_table_v1
8Byte tambahan [masing-masing] diperlukan untuk menyimpan panjang variabel pengguna, jumlah ID basis data yang disimpan di
pfs_plugin_table_v1
_9, dan jenis mikrodetik
Selain itu, pfs_plugin_column_
*
_0, yang sebenarnya tidak digunakan, telah dihapus. [Bug #33713071]
Replikasi. Pada platform 32-bit, pengaturan ke pfs_plugin_column_
*
2 [pfs_plugin_column_
*
3] atau lebih memiliki efek menyebabkan semua log biner dibersihkan sebelum waktu yang ditentukan berlalu. [Bug #33670457]
Replikasi. Jika perubahan konfigurasi grup sedang berlangsung, anggota baru tidak dapat bergabung. Pesan kesalahan yang dikeluarkan dalam skenario ini sekarang menyatakan operasi apa yang sedang berlangsung, seperti pemilihan utama, pertukaran antara mode primer tunggal dan mode multi-primer, atau perubahan protokol komunikasi grup. [Bug #32766981]
Replikasi. Ketika utas pengirim log biner menunggu pembaruan dengan detak jantung diaktifkan, kadang-kadang melewatkan sinyal pembaruan, sehingga perubahan tidak direplikasi hingga sinyal berikutnya dikeluarkan dan diperhatikan oleh utas
Terima kasih kami kepada Facebook atas kontribusinya. [Bug #104491, Bug #33176377]
Replikasi Grup. Pernyataan pfs_plugin_column_
*
4 dan pfs_plugin_column_
*
5 diizinkan untuk saluran aplikasi Replikasi Grup [pfs_plugin_column_
*
6], tetapi menghentikan dan memulai saluran secara manual dapat menyebabkan anggota online grup replikasi tidak dapat melakukan transaksi jarak jauh. Pernyataan ini tidak lagi dapat digunakan untuk saluran saat Replikasi Grup berjalan. [Bug #34231291]
Replikasi Grup. Kebuntuan dapat terjadi saat Replikasi Grup dimulai pada contoh server, tetapi kesalahan seperti konfigurasi yang tidak kompatibel menyebabkan anggota segera keluar. Registri layanan sekarang mengelola pendaftaran dan deregistrasi layanan dengan proses alternatif yang menghindari masalah tersebut. [Bug #34194893]
Replikasi Grup. Dalam ClusterSet InnoDB, jika terjadi kebuntuan pesanan komit dan percobaan ulang berikutnya, Replikasi Grup dapat membatalkan transaksi selama sertifikasi dengan kesalahan yang menyatakan bahwa GTID untuk transaksi tersebut telah digunakan. Kesalahan sekarang hanya dikembalikan jika GTID telah digunakan pada instance server dan juga di grup. [Bug #34157846]
Replikasi Grup. Setelah memeriksa komit transaksi tidak memiliki konflik dan dalam urutan yang benar, Replikasi Grup melaporkan kembali ke sesi komit. Saat utas penjadwal acara dimulai, Replikasi Grup tidak dapat menemukan sesi komitmen, sehingga anggota memasuki status pfs_plugin_column_
*
7 dan keluar dari grup. Prosedur untuk menemukan sesi komit diperluas untuk menemukan utas daemon, seperti yang digunakan untuk memulai utas penjadwal acara. Terima kasih kepada Lou Shuai atas kontribusinya. [Bug #107635, Bug #34312482]
Ketika variabel sistem pfs_plugin_column_
*
8 diaktifkan untuk meningkatkan kinerja untuk replikasi semisinkron, plugin pfs_plugin_column_
*
9 tidak dapat digunakan di server karena masalah penanganan pemberitahuan. Masalahnya sekarang telah diperbaiki. [Bug #34549470]
String yang berisi banyak angka nol di depan salah ditandai sebagai meluap saat mengonversinya menjadi desimal, menyebabkan nilai kembali menjadi nilai desimal maksimum untuk presisi dan skala yang diberikan
Kami memperbaikinya dengan mengganti semua nol di depan dalam kasus tersebut dengan satu --replicate-do-db
0, sebelum konversi. [Bug #34479194]
Perbedaan antara fungsi --replicate-do-db
1 pada Windows dan fungsi --replicate-do-db
2 pada sistem mirip Unix menyebabkan kode kumpulan utas pada Windows menganggap deskriptor atau soket file tidak valid sebagai siap untuk I/O. [Bug #34478731]
Jika instance MySQL di MySQL 8. 0. 27 atau lebih bergabung dengan grup replikasi yang berjalan di MySQL 8. 0. 26, tindakan anggota --replicate-do-db
_3 dihapus agar sesuai dengan konfigurasi tindakan anggota untuk anggota grup lainnya. Namun, jika instans ditingkatkan untuk dijalankan di MySQL 8. 0. 27 atau lebih, tindakan anggota tidak dipulihkan kecuali --replicate-do-db
4 dikeluarkan di server yang kemudian mem-bootstrap grup. Bergabung dengan anggota sekarang periksa apakah tindakan anggota --replicate-do-db
3 tersedia untuk mereka, dan tambahkan ke konfigurasi tindakan anggota mereka jika itu. [Bug #34464526]
Ekspresi konstanta yang digunakan dalam daftar kueri --replicate-do-db
_6 tidak selalu ditangani dengan benar oleh server. [Bug #34418412]
Menambahkan pemeriksaan kesalahan yang hilang di --replicate-do-db
7. [Bug #34416304]
Beberapa fungsi string yang menerima banyak argumen tidak memproses semua argumen dengan benar. [Bug #34393009]
Kolom dengan tipe --replicate-do-db
_8 dibuat untuk tabel sementara yang menampung --replicate-do-db
9 hasilnya tidak selalu dijamin dengan panjang yang benar. [Bug #34370933]
Jika tampilan [--replicate-ignore-db
_0] mengakses tampilan lain [--replicate-ignore-db
1], dan jika --replicate-ignore-db
1 dibuat ulang, maka --replicate-ignore-db
3 melaporkan kesalahan tampilan yang tidak valid. Masalah ini dapat terjadi hanya jika pengguna diberi hak istimewa global dengan peran, tetapi bukan hak istimewa tingkat tabel. Itu diperbaiki dengan memeriksa hak istimewa global jika hak istimewa tingkat tabel tidak ada. [Bug #34341533]
Kueri pada tabel Skema Kinerja --replicate-ignore-db
4 dapat gagal karena konflik antar utas. Masalahnya sekarang telah diperbaiki. [Bug #34337673]
Menambahkan pemeriksaan kesalahan yang hilang setelah evaluasi item saat membaca tabel const. [Bug #34327798]
Reparsing dan kloning tabel turunan tidak selalu ditangani dengan benar dalam kasus tertentu. [Bug #34317258, Bug #34408241]
Mendorong kondisi ke tabel turunan dengan operasi yang ditetapkan saat ada beberapa blok kueri tidak selalu ditangani dengan benar. [Bug #34306361]
Kegagalan startup selama pembuatan kunci RSA mengakibatkan kunci kosong atau tidak lengkap. Kunci sekarang dibuat dengan cara fail-safe. [Bug #34274914]
Saat membandingkan dua nilai string dengan klausa --replicate-ignore-db
5 eksplisit, ini harus memiliki susunan yang sama, jika tidak, perbandingan harus ditolak, tetapi ini tidak selalu ditegakkan
Untuk informasi lebih lanjut, lihat Coercibility Collation dalam Ekspresi. [Bug #34274525]
Operasi --replicate-ignore-db
_6 yang dibaca dari log biner gagal dijalankan di server replika karena kesalahan sintaks yang tidak terduga. [Bug #34178823]
Ketidakcocokan presisi kadang-kadang dapat terjadi dalam operasi ke --replicate-ignore-db
8 pada nilai bilangan bulat, saat menggunakan --replicate-ignore-db
9 sebagai kebalikan dari XA START
0 [lihat Pernyataan SELECT]
Untuk XA START
_0, nilai dipotong sesuai dengan presisi inheren dari nilai floating point 32 bit IEEE, yang merupakan perilaku yang benar. Dengan --replicate-ignore-db
_9, presisi dari nilai integer asli dipertahankan;
Kami memperbaikinya dengan membedakan tipe nilai floating point saat menyalin nilai tersebut ke tabel sementara, sehingga nilai presisi ganda disimpan sebagai tipe double dan nilai presisi tunggal disimpan sebagai tipe float. [Bug #34167787]
Dieksekusi XA START
_3 pada sebagian besar kode sumber, dan memperbaiki kesalahan ejaan yang dilaporkan dalam komentar kode. [Bug #34163323]
Dalam kasus tertentu, saat memeriksa penunjuk fungsi internal sebelum dipanggil, penunjuk yang salah telah divalidasi. [Bug #34134738]
Jalur akses dan iterator untuk akses XA START
4 memiliki anggota XA START
5 untuk menentukan apakah akan menggunakan pemindaian indeks yang dipesan. Karena XA START
_4 selalu mengembalikan paling banyak satu baris, tidak perlu mengurutkannya; . [Bug #34122706]
Memperbaiki opsi CMake agar juga berfungsi saat memuat pengujian unit. [Bug #34117732]
Referensi. Lihat juga. Bug #29925009
Menghapus dukungan tautan 'emas' GNU, termasuk opsi CMake USE_LD_GOLD terkait. [Bug #34094324]
Direktori yang dibuat secara manual di MySQL 5. 7 direktori data [diperlakukan sebagai direktori skema di MySQL 5. 7] dengan karakter khusus dalam nama direktori atau skema dan tabel yang dibuat dengan karakter khusus dalam namanya menggunakan awalan XA START
9 menyebabkan kegagalan DDL setelah memutakhirkan ke MySQL 8. 0. Di MYSQL8. 0, karakter khusus diganti dengan karakter tanda tanya [XA END
0] saat nama objek ditambahkan ke kamus data. Ketidakcocokan nama menyebabkan operasi DDL pada objek yang terpengaruh gagal. Pemutakhiran sekarang berhenti dengan kesalahan jika ditemukan skema dan nama tabel yang tidak valid
Di MySQL5. 7, Anda dapat memperbarui skema dan nama tabel yang tidak valid menjadi penyandian yang valid menggunakan mysqlcheck. Untuk mengidentifikasi nama yang tidak valid, jalankan
mysqlcheck --check-upgrade --all-databases
Untuk memperbaiki nama yang tidak valid, jalankan
mysqlcheck --fix-db-names --fix-table-names --all-databases
Di MySQL5. 7, nama direktori yang memiliki karakter khusus juga dapat diperbarui untuk menggunakan penyandian yang valid menggunakan sintaks SQL berikut
ALTER DATABASE `directory_name
` UPGRADE DATA DIRECTORY NAME;
_[Bug #34066605]
Kondisi yang menggunakan null-safe equals operator [] sekarang dapat dianggap oleh pelaksana sebagai kondisi equijoin. Predikat yang menggunakan kondisi seperti itu tidak dianggap sebagai predikat equijoin, melainkan sebagai predikat tambahan untuk dievaluasi setelah bergabung. [Bug #34063499]
Dukungan ditambahkan untuk mengkompilasi komponen Enkripsi MySQL Enterprise dengan OpenSSL 3. [Bug #34043029]
Dieksekusi XA START
_3 pada kode sumber dan memperbaiki kesalahan ejaan yang dilaporkan dalam komentar kode. [Bug #34006439]
Jika satu atau lebih argumen to adalah nilai temporal, urutan penerusannya ke fungsi dapat memengaruhi hasilnya. [Bug #33996054]
Sebuah --replicate-do-db
_6 dengan XA END
5 pada tabel turunan yang berisi subquery bersarang sebagai bagian dari klausa XA END
6 dengan predikat mengembalikan hasil yang salah. [Bug #33971286]
Panggilan ke XA END
_8 di fungsi XA END
9 dan
mysqlcheck --fix-db-names --fix-table-names --all-databases00 menyebabkan kesalahan saat kompilasi dengan OpenSSL 3. 0. [Bug #33967647]
Server tidak selalu memproses tampilan bersarang seperti yang diharapkan. [Bug #33876690]
mysqlpump mungkin tidak diberi izin yang benar untuk menggunakan tabel turunan [tabel yang dihasilkan oleh klausa kueri
mysqlcheck --fix-db-names --fix-table-names --all-databases01], menyebabkan proses dump berhenti jika ada. Tabel turunan sekarang ditangani secara terpisah dan hak istimewa ditetapkan untuknya. [Bug #33866103]
Eksekusi berulang dari rutinitas tersimpan yang memiliki subquery --replicate-do-db
6 yang berisi beberapa kondisi
mysqlcheck --fix-db-names --fix-table-names --all-databases03,
mysqlcheck --fix-db-names --fix-table-names --all-databases04, atau
mysqlcheck --fix-db-names --fix-table-names --all-databases05 menyebabkan konsumsi berlebihan dan kemungkinan kehabisan memori virtual. [Bug #33852530]
memberikan informasi tentang perkiraan biaya dan waktu yang telah berlalu untuk setiap iterator dalam rencana kueri. Kami berharap angka-angka ini bersifat kumulatif, sehingga biaya [atau waktu] untuk iterator tertentu mencakup biaya setiap iterator yang bergantung pada iterator ini. Misalnya, perkiraan biaya penyambungan tabel
mysqlcheck --fix-db-names --fix-table-names --all-databases07 dengan tabel
mysqlcheck --fix-db-names --fix-table-names --all-databases08, menggunakan pemindaian tabel
mysqlcheck --fix-db-names --fix-table-names --all-databases07 diikuti dengan pencarian kunci primer pada
mysqlcheck --fix-db-names --fix-table-names --all-databases08, tidak boleh kurang dari biaya pemindaian
mysqlcheck --fix-db-names --fix-table-names --all-databases07 ditambah biaya pencarian kardinalitas pada
mysqlcheck --fix-db-names --fix-table-names --all-databases08
Untuk beberapa kueri yang melibatkan materialisasi atau tabel sementara, angka ini tidak bersifat kumulatif. Selain itu, perkiraan biaya salah ketika mewujudkan hasil operasi --replicate-do-db
9 dan kemudian melakukan pemindaian tabel pada tabel sementara [terwujud]. [Bug #33834146, Bug #34302461]
Paksaan pemeriksaan untuk perbandingan dua nilai string bergantung pada urutan operan. Diberikan satu string menggunakan set karakter
mysqlcheck --fix-db-names --fix-table-names --all-databases14 dan satu string menggunakan
mysqlcheck --fix-db-names --fix-table-names --all-databases15, perbandingan dilakukan menggunakan collation
mysqlcheck --fix-db-names --fix-table-names --all-databases14 ketika operan kiri adalah
mysqlcheck --fix-db-names --fix-table-names --all-databases14, dan
mysqlcheck --fix-db-names --fix-table-names --all-databases15 ketika operan kiri adalah
mysqlcheck --fix-db-names --fix-table-names --all-databases15
Akar masalahnya adalah dengan penanganan khusus yang digunakan untuk pemaksaan string ASCII; . Ini berarti bahwa satu string dapat diperlakukan sebagai ASCII sedangkan string lainnya tidak;
Kami memperbaikinya dengan menggunakan properti
mysqlcheck --fix-db-names --fix-table-names --all-databases_22 internal daripada
mysqlcheck --fix-db-names --fix-table-names --all-databases23; . Sekarang dalam kasus seperti itu, tidak ada string yang diidentifikasi sebagai ASCII, yang mengarah ke konversi
mysqlcheck --fix-db-names --fix-table-names --all-databases15 ke
mysqlcheck --fix-db-names --fix-table-names --all-databases14 sebelum perbandingan dilakukan, seperti yang diharapkan. [Bug #33801312]
Cakupan batas diperluas ke pembacaan paket lengkap. [Bug #33723597]
Referensi. Lihat juga. Bug #34574013
Validasi baru telah ditambahkan untuk memastikan bahwa Penjadwal Acara dimulai ulang secara otomatis di server seperti yang diharapkan. [Bug #33711304]
Referensi. Lihat juga. Bug #33539082
Ketika pernyataan yang disiapkan dieksekusi tanpa kursor, itu bisa mengembalikan hasil yang salah jika eksekusi sebelumnya menggunakan kursor. Masalah ini diperbaiki dengan membuat dan menyimpan dua objek hasil kueri, satu untuk digunakan dengan kursor dan satu untuk digunakan tanpa kursor. Objek dibuat berdasarkan permintaan, jadi jika pernyataan yang disiapkan tidak pernah digunakan dengan kursor, objek hasil kueri khusus kursor tidak pernah dibuat. [Bug #33535746]
Pernyataan yang disiapkan dengan parameter bisa gagal memperbarui baris, tetapi pernyataan yang sama dengan data yang sama memang memperbarui baris saat dikeluarkan sebagai kueri. Perbaikan untuk masalah ini adalah menetapkan tipe data default ke parameter, meskipun ini bisa menjadi tidak efisien karena tidak ada konteks yang tersedia untuk propagasi tipe data dan tipe string karakter diberikan secara implisit. Dalam hal ini, praktik terbaik adalah membungkus deklarasi parameter tersebut dalam klausa yang menyediakan tipe data yang diinginkan. [Bug #33521861]
Untuk tabel yang menggunakan mesin penyimpanan FEDERATED, jika kueri berurutan di server lokal mengalami penundaan di antara mereka yang melebihi waktu tunggu server jauh [pengaturan
mysqlcheck --fix-db-names --fix-table-names --all-databases29], kesalahan paket dikembalikan di server lokal. Kesalahan batas waktu dari server jarak jauh sekarang ditangani dengan benar oleh server lokal, dan menghubungkan kembali dan mengeksekusi pernyataan lagi. [Bug #33500956]
Menangani kondisi tak terduga yang dapat muncul selama pengoptimalan gabungan. [Bug #31401468]
Referensi. Lihat juga. Bug #34350945
Setelah eksekusi
mysqlcheck --fix-db-names --fix-table-names --all-databases_30, petunjuk pengoptimal tidak diuraikan dengan benar. [Bug #107820, Bug #34370403]
Kueri yang melakukan pencarian teks lengkap dalam mode boolean pada kolom tabel
mysqlcheck --fix-db-names --fix-table-names --all-databases31 menyebabkan pernyataan dalam build debug saat kolom bukan tipe string. Hal ini disebabkan fakta bahwa
mysqlcheck --fix-db-names --fix-table-names --all-databases_31 memungkinkan
mysqlcheck --fix-db-names --fix-table-names --all-databases33 kolom tanpa indeks dalam mode boolean, dan oleh karena itu juga memungkinkan kolom bilangan bulat, yang tunduk pada propagasi konstan. Kueri tersebut pada tabel yang menggunakan mesin penyimpanan apa pun selain
mysqlcheck --fix-db-names --fix-table-names --all-databases31 tidak terpengaruh oleh masalah ini
Ini diperbaiki dengan menonaktifkan propagasi konstan pada
mysqlcheck --fix-db-names --fix-table-names --all-databases33 klausa ketika kolom bukan tipe string, sehingga kita dapat dengan aman berasumsi bahwa itu hanya berisi referensi kolom. [Bug #107638, Bug #34311472]
Memperbaiki kesalahan dalam komentar di
mysqlcheck --fix-db-names --fix-table-names --all-databases36. Terima kasih kami kepada Dimitry Kudryavtsev atas kontribusinya. [Bug #107633, Bug #34308417]
Berikut perubahan penanganan error koneksi di MySQL 8. 0. 24, jika kesalahan seperti melebihi
mysqlcheck --fix-db-names --fix-table-names --all-databases37 menyebabkan klien mysql memutuskan koneksi dari server, kesalahan tidak diatur ulang setelah itu untuk menunjukkan pemutusan. Pada kueri berikutnya, kesalahan asli dikembalikan, dan penyambungan ulang otomatis tidak dilakukan karena klien mysql tidak memiliki kesalahan pemutusan sambungan. Kesalahan sekarang diatur ulang untuk menunjukkan pemutusan dan mengizinkan klien untuk menyambung kembali. [Bug #107605, Bug #34303841]
Mengikuti perbaikan bug di MySQL 8. 0. 29, jika kata sandi diberikan dalam file opsi, klien mysql tidak meminta kata sandi jika opsi
mysqlcheck --fix-db-names --fix-table-names --all-databases38 ditentukan saat login. Klien sekarang selalu meminta kata sandi ketika opsi
mysqlcheck --fix-db-names --fix-table-names --all-databases38 ditentukan dan menggunakan kata sandi yang ditentukan, bahkan jika alternatif diisi dari file opsi. [Bug #107205, Bug #34134984]
Alternatif untuk opsi server
mysqlcheck --fix-db-names --fix-table-names --all-databases40 yang sudah tidak digunakan lagi untuk menonaktifkan penggunaan koneksi terenkripsi tidak berfungsi seperti yang didokumentasikan, atau seperti yang disajikan dalam peringatan penghentian. Menyetel variabel sistem
mysqlcheck --fix-db-names --fix-table-names --all-databases_41 ke nilai kosong [
mysqlcheck --fix-db-names --fix-table-names --all-databases42] sekarang berfungsi dengan benar untuk tujuan ini. [Bug #106459, Bug #33858646]
Kueri agregat pada kolom
mysqlcheck --fix-db-names --fix-table-names --all-databases43 mengembalikan nilai yang diformat sebagai string bit, tetapi bendera
mysqlcheck --fix-db-names --fix-table-names --all-databases44 juga ditambahkan secara otomatis. Validasi baru sekarang memeriksa dan melewati pengaturan bendera
mysqlcheck --fix-db-names --fix-table-names --all-databases44 untuk hasil
mysqlcheck --fix-db-names --fix-table-names --all-databases43. [Bug #106241, Bug #33781442]
mysqlcheck --fix-db-names --fix-table-names --all-databases_47 dan
mysqlcheck --fix-db-names --fix-table-names --all-databases48 menggunakan lebih banyak CPU setelah diperkenalkannya
mysqlcheck --fix-db-names --fix-table-names --all-databases49 dan
mysqlcheck --fix-db-names --fix-table-names --all-databases50 daripada sebelumnya. [Bug #105924, Bug #33684069]
Ketika petunjuk merujuk ke indeks tertentu yang tidak digunakan untuk pemindaian lompatan tabel, semua kemungkinan indeks lainnya juga diabaikan, dan, dengan demikian, pemindaian lompatan tidak digunakan untuk indeks apa pun di atas meja
Hal ini terjadi karena pemrosesan tidak dilakukan untuk semua kemungkinan kunci untuk melewati pemindaian jika petunjuk
mysqlcheck --fix-db-names --fix-table-names --all-databases51 tidak berlaku untuk semua indeks. [Bug #104670, Bug #33251616]
Kueri yang menggunakan
mysqlcheck --fix-db-names --fix-table-names --all-databases53 IN [
mysqlcheck --fix-db-names --fix-table-names --all-databases54] mengambil jumlah waktu CPU yang semakin lama karena daftar nilai bertambah panjang. [Bug #102037, Bug #32311183]