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 datadir
opsi - 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
READ
izin 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?Jawaban:
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_bin
atau dari file konfigurasi sebagailog_bin=ON
) dan semuanya mulai berfungsi lagi!Memperbarui
Mereka mengatakan bahwa mereka telah memperbaikinya di VirtualBox 6.0.6!
sumber
tc.log
kesalahan saya menggunakan Virtualbox pada host windows 10.Saya akhirnya menghapus file tc.log di / var / lib / mysql. Ketika saya memulai mysql lagi, itu menciptakan tc.log baru dan memulai.
sumber
sudo mv /var/lib/mysql/tc.log /var/lib/mysql/tc_bkp.log
Anda dapat menghapus
tc.log
dalam 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
mysql
pengguna dan pemilik id folder bersama, berikut ini cuplikannya.sumber
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 **
sumber
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:
Kemudian saya membangun kembali buruh pelabuhan dan masalah diurutkan.
sumber
Saya juga memecahkan kesalahan ini dengan menghapus tc.log. Dengan XAMPP file tc.log ada di
XAMPP/xamppfiles/var/mysql
folder - di mac saya terletak di:/Applications/XAMPP/xamppfiles/var/mysql/tc.log
sumber
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
mmap
seperti yang disarankan oleh jawaban yang diterima.Saya menemukan berbagai solusi untuk memperbaiki ini untuk skenario saya.
sumber