Apakah perbezaan antara 5.6 dan 5.5 dalam mysql
Perbezaan: 1. Dalam versi 5.5, parameter binlog dan POS tidak boleh ditinggalkan dalam konfigurasi hamba induk, tetapi dalam versi 5.6, kedua-dua parameter ini boleh diabaikan. Dalam versi 5.5, berbilang benang replikasi tidak disokong. Replikasi segerak adalah satu-benang dan beratur, manakala replikasi berbilang benang disokong dalam versi 5.6.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
Apakah perbezaan antara 5.6 dan 5.5 dalam mysql
Peningkatan dalam 5.6:
1 Dalam versi 5.5 dan mysql sebelumnya, konfigurasi master-slave mesti dilakukan dalam konfigurasi Node hamba tukar induk untuk menentukan binlog dan POS. Dalam 5.6 dan kemudian
, kedua-dua parameter ini boleh diabaikan. MySQL secara automatik boleh mencari titik penyegerakan melalui mekanisme GTID dalaman. Kami hanya perlu menentukan IP tuan, nama pengguna dan kata laluan, dan port.
2. 5.6 menyokong replikasi berbilang benang
Dalam 5.5, replikasi segerak adalah satu-benang dan beratur, dan hanya boleh dilaksanakan oleh satu. Dalam 5.6, berbilang perpustakaan boleh disalin pada masa yang sama (nota: multi-threading masih tidak dibenarkan dalam perpustakaan yang sama).
5.6 akan melibatkan parameter UUID
MySQL [(none)]>show variables like '%uuid%'; +---------------+--------------------------------------+ | Variable_name | Value | +---------------+--------------------------------------+ | server_uuid | ca910cf0-3aec-11e6-9319-b888e3dcfeb8 | +---------------+--------------------------------------+ 1 row in set (0.00 sec)
Nota: UIID ini akan dijana secara automatik apabila mysql mula-mula dimulakan dan ditulis ke auto.cnf . Dan server_uuid dan GTID berkait rapat.
GTID: Pengecam transaksi global
Apabila menggunakan fungsi ini, setiap penyerahan transaksi akan menjana pengecam unik dalam binlog, yang terdiri daripada UUID dan ID transaksi. ID transaksi yang diserahkan buat kali pertama ialah 1, dan ia meningkat secara berurutan selepas itu.
Apabila GTID didayakan, hamba tidak perlu mencari log binlog dan titik POS apabila melakukan replikasi segerak. Terus
Tulisan GTID:
change master to master_HOST=192.168.2.100, master_PORT=2206, master_USER=repluser, master_PASSWORD='123456', master_AUTO_POSITION=1; 另外传统的写法: CHANGE MASTER TO MASTER_HOST='master2.mycompany.com', MASTER_USER='replication', MASTER_PASSWORD='bigs3cret', MASTER_PORT=3306, MASTER_LOG_FILE='master2-bin.001', MASTER_LOG_POS=4, MASTER_CONNECT_RETRY=10;
Jika GTID telah didayakan sebelum ini, anda tidak boleh lagi menggunakan kaedah induk perubahan tradisional dan ralat akan dilaporkan, seperti berikut:
RALAT 1776 (HY000): Parameter MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE dan RELAY_LOG_POS tidak boleh ditetapkan apabila MASTER_AUTO_POSITION aktif.
🎜>🎜>GTID 1. Hantar transaksi pada tuan dan tuliskannya ke binlog
2. Binlog dihantar kepada hamba menerima dan menulis log geganti Hamba membaca GTID dan menetapkan nilai gtid_next . Contohnya:
set @@SESSION.GTID_NEXT='B0869D03-D332223-35454:3';
Kemudian beritahu hamba bahawa transaksi seterusnya mesti menggunakan GTID dan tulis ke binlognya sendiri .
3. Hamba menyemak dan mengesahkan bahawa gtid tidak digunakan, maka ia mula melaksanakan transaksi dan menulisnya ke binlognya sendiri.
4. Memandangkan nilai gtid_next tidak kosong, hamba tidak akan cuba menjana gtid baharu, tetapi memperoleh GTID melalui penyegerakan tuan-hamba.
Selain itu, jika anda ingin menggunakan kaedah GTID untuk penyegerakan master-slave, anda juga mesti menambah konfigurasi berikut pada my.cnf:
Kemudian eksport mysqldump -uroot - proot pada master -q --single-transaction -R -E --triggers -B hellodb > /root/hello.sql[mysqld] log-bin=mysql-bin binlog_format = mixed log_slave_updates = ON gtid-mode = ON enforce_gtid_consistency = ON
Import mysql pada slave -uroot -proot < sql
Konfigurasikan induk tukar untuk menunjuk pada hamba (6 baris kod berikut):
Penghadan GTID:change master to master_HOST=192.168.2.100, master_PORT=3306, master_USER=repluser, master_PASSWORD='123456', master_AUTO_POSITION=1;
1 pada urus niaga dan tidak Menyokong MyISAM, yang boleh menyebabkan berbilang GTID diberikan setiap satu dalam transaksi yang sama.
2. Cipta jadual...penyataan pilih tidak disokong. Oleh kerana penyata ini akan dibahagikan kepada dua transaksi: buat jadual dan sisipkan, dan jika kedua-dua transaksi ini diberikan GTID yang sama, sisipan akan diabaikan oleh pangkalan data siap sedia.
3. Penciptaan dan pemadaman jadual sementara tidak disokong
Demonstrasi replikasi berbilang benang:
Laksanakan arahan berikut pada hamba:
Jika terdapat sejumlah besar operasi sisipan pada master pada masa ini, anda boleh melaksanakan > replikasi benang berfungsi.> stop slave; > set global slave_parallel_workers = 4; > start slave; > show full processlist;可以看到有4个线程 Waitingfor an eventfromCoordinator
Penjelasan: slave_parallel_workers boleh mencapai replikasi serentak berbilang benang pada hamba. Walau bagaimanapun, ia hanya boleh menyokong replikasi serentak antara berbilang pangkalan data di bawah satu contoh, dan tidak boleh benar-benar mencapai replikasi serentak berbilang jadual. Oleh itu, apabila terdapat beban serentak yang besar, hamba masih tidak dapat mengejar tuan dalam masa, dan perlu mencari cara untuk mengoptimumkan (contohnya: cuba bahagikan jadual dalam satu perpustakaan kepada berbilang perpustakaan mengikut logik perniagaan untuk menyimpan mereka, supaya semasa operasi tulis, Hamba boleh memulakan replikasi berbilang benang, mengurangkan kelewatan penyegerakan)
Selain itu, disyorkan untuk mengubah suai my.cnf dan menambah 2 baris (secara lalai, fail_info ini ialah fail dan tidak ditulis ke pangkalan data)
Ini sahaja tidak mencukupi, kedua-dua jadual ini adalah MyISAM Jika tidak selamat, anda perlu menukarnyarelay_log_info_repository = table master_info_repository = table
Dengan cara ini, anda boleh mengelakkan kerosakan meja dan anda boleh membaikinya sendiri selepas kerosakan.
> alter table slave_master_info engine innodb; > alter table slave_relay_log_info engine innodb; > alter table slave_worker_info engine innodb;
Replikasi induk-hamba dalam mod GTID, penyelesaian kepada ralat yang tidak boleh dilangkau semasa penyegerakan:
Jika anda melihat ralat penyegerakan pada hamba "Kunci XXX nod hamba tidak tidak wujud"
Kita boleh cuba menggunakan kaedah lama pada 5.5
Apabila melaksanakan, anda akan mendapati ralat, gesaan adalah seperti berikut:> stop slave; > set global sql_slave_skip_counter=1 > start slave;
可以看出运行在GTID模式下,不支持sql_slave_skip_counter这种方式跳过的。
那么可以如下方法来跳过:
> show slave status\G查看如下2行的信息:
Retrieved_Gtid_Set: ca910cf0-3aec-11e6-9319-b888e3dcfeb8:1-2 Executed_Gtid_Set: ca910cf0-3aec-11e6-9319-b888e3dcfeb8:1
第一行表示收到的事务,第二行表示已经执行完的事务。也就是说执行到Retrieved_Gtid_Set时候发生错误了。
因此,我们直接单单跳过这个事务即可。
> stop slave; > set GTID_NEXT='ca910cf0-3aec-11e6-9319-b888e3dcfeb8:2'; 就是这种写法,不要加什么1-2这些玩意 > begin; > commit; > set GTID_NEXT="AUTOMATIC"; #把gtid_next设置回来 > start slave; > show slave status\G 验证下是否IO/SQL都是YES状态。
GTID模式转换为传统模式的方法及注意点:
要转换成传统模式,需要在my.cnf里面注释掉下面2行:
# gtid-mode=ON # enforce_gtid_consistency = ON
然后重启MySQL。
登进mysql,执行类似如下命令:
> stop slave; > CHANGE MASTER TO MASTER_HOST='master2.mycompany.com', MASTER_USER='replication', MASTER_PASSWORD='bigs3cret', MASTER_PORT=3306, MASTER_LOG_FILE='master2-bin.001', MASTER_LOG_POS=4, MASTER_CONNECT_RETRY=10;
结果报错了,如下图:
解决方法:
> change master to MASTER_AUTO_POSITION=0; # 关闭这个参数,这个参数是GTID复制才用到的。 > CHANGE MASTER TO MASTER_HOST = '192.168.2.11', MASTER_USER='repluser', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=500, MASTER_CONNECT_RETRY=10; > start slave; > show slave status\G 验证下是否IO/SQL都是YES状态。
推荐学习:mysql视频教程
Atas ialah kandungan terperinci Apakah perbezaan antara 5.6 dan 5.5 dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam pangkalan data MySQL, hubungan antara pengguna dan pangkalan data ditakrifkan oleh kebenaran dan jadual. Pengguna mempunyai nama pengguna dan kata laluan untuk mengakses pangkalan data. Kebenaran diberikan melalui perintah geran, sementara jadual dibuat oleh perintah membuat jadual. Untuk mewujudkan hubungan antara pengguna dan pangkalan data, anda perlu membuat pangkalan data, membuat pengguna, dan kemudian memberikan kebenaran.

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

1. Gunakan indeks yang betul untuk mempercepatkan pengambilan data dengan mengurangkan jumlah data yang diimbas memilih*frommployeesWherElast_name = 'Smith'; Jika anda melihat lajur jadual beberapa kali, buat indeks untuk lajur tersebut. Jika anda atau aplikasi anda memerlukan data dari pelbagai lajur mengikut kriteria, buat indeks komposit 2. Elakkan pilih * Hanya lajur yang diperlukan, jika anda memilih semua lajur yang tidak diingini, ini hanya akan memakan lebih banyak pelayan dan menyebabkan pelayan melambatkan pada masa yang tinggi atau kekerapan misalnya, jadual anda

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

Navicat untuk MariaDB tidak dapat melihat kata laluan pangkalan data secara langsung kerana kata laluan disimpan dalam bentuk yang disulitkan. Untuk memastikan keselamatan pangkalan data, terdapat tiga cara untuk menetapkan semula kata laluan anda: Tetapkan semula kata laluan anda melalui Navicat dan tetapkan kata laluan yang kompleks. Lihat fail konfigurasi (tidak disyorkan, risiko tinggi). Gunakan alat baris perintah sistem (tidak disyorkan, anda perlu mahir dalam alat baris arahan).

Lihat pangkalan data MySQL dengan arahan berikut: Sambungkan ke pelayan: MySQL -U Pengguna Nama -P Kata Laluan Run Show pangkalan data; Perintah untuk mendapatkan semua pangkalan data yang sedia ada Pilih pangkalan data: Gunakan nama pangkalan data; Lihat Jadual: Tunjukkan Jadual; Lihat Struktur Jadual: Huraikan nama jadual; Lihat data: pilih * dari nama jadual;

Menyalin jadual di MySQL memerlukan membuat jadual baru, memasukkan data, menetapkan kunci asing, menyalin indeks, pencetus, prosedur tersimpan, dan fungsi. Langkah -langkah khusus termasuk: mewujudkan jadual baru dengan struktur yang sama. Masukkan data dari jadual asal ke dalam jadual baru. Tetapkan kekangan utama asing yang sama (jika jadual asal mempunyai satu). Buat indeks yang sama. Buat pencetus yang sama (jika jadual asal mempunyai satu). Buat prosedur atau fungsi yang disimpan yang sama (jika jadual asal digunakan).
