MariaDB Tidak bisa masuk log tc

21

Saya sudah mencoba setiap solusi di Internet tetapi server MariaDb saya terus gagal, terus mengkhianati saya, terus menghancurkan dunia DevOps kecil saya. Upaya saya untuk memuluskan situasi termasuk segala macam kepuasan: mengubah izin, mengkonfigurasi, menghapus file log, memutakhirkan / menginstal ulang, memindahkan file-file internalnya ke atas dan di sekitar, menghapus DBMS lain, menghapus semuanya kecuali dia tetapi .... dia tidak pernah menolak begitu banyak untuk waktu yang lama. Harapan terakhir saya dan satu-satunya bagi kalian untuk menerangi momen kritis dalam hubungan kami.

Saya menggunakan gelandangan dan masalahnya ada di datadiropsi - ketika saya menggunakan jalur default semuanya ok tapi ketika saya mengubahnya ke folder bersama gelandangan Maria bahkan tidak memulai. Saya telah menyalin semua file / var / lib / mysql ke folder baru.

Saya memiliki host Windows, tamu Centos dan konfigurasi saya adalah:

Versi MariaDb:

mysql  Ver 15.1 Distrib 10.1.17-MariaDB, for Linux (x86_64) using readline 5.1

Vagrantfile:

# -*- mode: ruby; -*-

ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox'

Vagrant.configure("2") do |config|
  config.vm.box_url = "https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box"
  config.vm.box = "centos7"

  config.vm.network "private_network", ip: "10.0.1.10"

  config.vm.synced_folder "mysql", "/vagrant/mysql", owner: "mysql", group: "mysql"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "4096"]
    vb.customize ["modifyvm", :id, "--cpus", "4"]
    vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
    vb.customize ["modifyvm", :id, "--audio", "none"]
    vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
    vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
  end
end

/etc/my.cnf.d/server.cnf:

[mysqld]
user=mysql
datadir=/vagrant/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
default-storage-engine=innodb

tmpdir = /tmp

character-set-server = utf8
init-connect="SET NAMES utf8"

expire_logs_days=2
skip-external-locking

key_buffer_size = 32M
max_allowed_packet = 32M
table_open_cache = 8192
table_definition_cache = 8192
sort_buffer_size = 16M
net_buffer_length = 16K
read_buffer_size = 8M
read_rnd_buffer_size = 8M
thread_cache_size = 128
thread_concurrency = 16

query_cache_size = 1024M
query_cache_limit = 2M
join_buffer_size = 32M

max_connections = 1024
max_connect_errors = 1024

connect_timeout=5

innodb_file_per_table
innodb_buffer_pool_size=2048M
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb_lock_wait_timeout=5
innodb_flush_log_at_trx_commit=2
innodb_flush_method=O_DSYNC
innodb_log_file_size=64M
innodb_log_buffer_size=32M
innodb_log_files_in_group=2
innodb_thread_concurrency=16
innodb_open_files = 1000
innodb_sync_spin_loops=100

skip-name-resolve

log-error=/var/log/mariadb/mysqld.log

Log kesalahan MariaDb:

2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: The InnoDB memory heap is disabled
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Compressed tables use zlib 1.2.7
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Using Linux native AIO
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Using SSE crc32 instructions
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Initializing buffer pool, size = 2.0G
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Completed initialization of buffer pool
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Highest supported file format is Barracuda.
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: 128 rollback segment(s) are active.
2016-09-30 22:32:46 139758293125248 [Note] InnoDB: Waiting for purge to start
2016-09-30 22:32:46 139758293125248 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.31-77.0 started; log sequence number 1600799
2016-09-30 22:32:46 139754263774976 [Note] InnoDB: Dumping buffer pool(s) not yet started
2016-09-30 22:32:46 139758293125248 [Note] Plugin 'FEEDBACK' is disabled.
2016-09-30 22:32:46 139758293125248 [ERROR] Can't init tc log
2016-09-30 22:32:46 139758293125248 [ERROR] Aborting
Sam Ivichuk
sumber
1
Apakah Anda memiliki cukup ruang pada partisi dengan log? Bisakah Anda menghapus file log dan memulai kembali?
Stoleg
@Stoleg Hai Stoleg, terima kasih atas balasannya. Ada banyak ruang kosong di partisi. Saya mencoba menghapus file, memulai kembali dan MariaDb membuatnya dan tidak memulai
Sam Ivichuk
Apakah akun yang digunakan oleh Maria, memiliki READizin ke folder tujuan? Mungkin ada peluang untuk membuat file dengan Tulis, tetapi tidak memiliki izin Baca. Coba lakukan operasi yang sama seperti yang akan dilakukan Maria di bawah akunnya. Mungkin itu tidak bisa membuat file tetap terbuka dan terkunci?
Stoleg

Jawaban:

15

Woohoo, saya menemukannya! Setidaknya untuk saat ini. Menggali sumber menunjukkan bahwa ini mungkin ada hubungannya dengan mmap()panggilan, dan lihatlah - VirtualBox memiliki bug di daerah itu . Untungnya sumber yang sama mengisyaratkan solusi - opsi log_bin . Aktifkan ini (baik dari baris perintah sebagai --log_binatau dari file konfigurasi sebagai log_bin=ON) dan semuanya mulai berfungsi lagi!

Memperbarui

Mereka mengatakan bahwa mereka telah memperbaikinya di VirtualBox 6.0.6!

Vilx-
sumber
Terima kasih banyak! Ini memperbaiki tc.logkesalahan saya menggunakan Virtualbox pada host windows 10.
Ricky Boyce
Ini sepertinya merupakan kemajuan yang signifikan bagi saya juga, Windows 10 Home, Docker Toolbox 18.03.
rfay
22

Saya akhirnya menghapus file tc.log di / var / lib / mysql. Ketika saya memulai mysql lagi, itu menciptakan tc.log baru dan memulai.

sudo rm -f /var/lib/mysql/tc.log
Flavio Troia
sumber
sementara ini terasa agak tidak aman itu berhasil dalam kasus saya!
Peter
2
Itu berhasil, tetapi lebih aman untuk digunakan:sudo mv /var/lib/mysql/tc.log /var/lib/mysql/tc_bkp.log
Pedro Lobito
9

Anda dapat menghapus tc.logdalam direktori data dan menghapus entri lama dari mysql-bin.index (ini adalah file teks, bersama dengan daftar log biner). Jika ini adalah kotak pengembangan, Anda dapat menghapus file indeks (mysql-bin.index) untuk memaksa rekreasi.

Bisa juga terkait dengan id pengguna antara mysqlpengguna dan pemilik id folder bersama, berikut ini cuplikannya.

3manuek
sumber
Ingin tahu tentang penyebab masalah ini, bagaimana saya bisa menghindari? Terima kasih
3zzy
@ 3zzy - Baca jawaban saya.
Vilx-
@ 3zzy Saya belum mereproduksi bug.
3manuek
Ini memang masalah aneh yang harus dihadapi. Apa sebenarnya yang disimpan dalam file ini? Saya begitu tergesa-gesa untuk memperbaiki masalah saya lupa melihat yang ada di sana. Saya mungkin bisa memberikan lebih banyak detail.
MageProspero
Saya menduga bahwa kesalahan "kehabisan ruang disk" merusak tc.log saya hari ini.
jchook
1

Jika Anda hanya ingin menjalankan mysql / mariadb lagi dan tidak keberatan kehilangan data Anda (dalam lingkungan dev), inilah yang saya lakukan

Hapus: ib_logfile1 ib_logfile0 aria_log_control aria_log.00000001 tc.log ib_data1

mulai server

Hapus skema (jika mengandung file, masuk ke folder skema, hapus semuanya)

Saya kemudian mengimpor kembali database dari dump lama yang saya miliki.

Saya kemudian mulai mariadb, dan muncul baik-baik saja. File yang dihapus dibuat ulang. ** Sekali lagi ini hanya untuk dev. Anda mungkin dapat menginstal db Anda **

Kiren
sumber
0

Saya menghadapi masalah ini ketika saya mencoba menyalin folder data database. Jadi saya mengubah ke folder data dan menjalankan perintah berikut untuk menghapus semua file log:

rm -rf *log*

Kemudian saya membangun kembali buruh pelabuhan dan masalah diurutkan.

tharanga rajapaksha
sumber
0

Saya juga memecahkan kesalahan ini dengan menghapus tc.log. Dengan XAMPP file tc.log ada di XAMPP/xamppfiles/var/mysqlfolder - di mac saya terletak di: /Applications/XAMPP/xamppfiles/var/mysql/tc.log

John Tyner
sumber
0

Saya memiliki masalah ini dalam wadah buruh pelabuhan resmi MariaDB. Menghapus file log sebagai jawaban lain yang ditawarkan tidak membantu saya. Namun, masalah saya terkait dengan mmapseperti yang disarankan oleh jawaban yang diterima.

Saya menemukan berbagai solusi untuk memperbaiki ini untuk skenario saya.

  1. Aktifkan Binary Log
  2. Hapus konflik yang menghambat mmap agar tidak berfungsi dengan benar
brettinternet
sumber