MariaDB는 TC 로그를 초기화 할 수 없습니다


21

인터넷에서 모든 솔루션을 시도했지만 MariaDb 서버는 계속 실패하고 계속 배신하며 작은 DevOps 세계를 계속 파괴합니다. 상황을 매끄럽게하려는 시도에는 권한 변경, 구성, 로그 파일 제거, 업그레이드 / 다시 설치, 내부 파일 이동 및 다른 DBMS 제거, 그녀 이외의 모든 것을 제거하는 등 모든 종류의 만족도가 포함되었습니다. 너무 오래 저항합니다. 저의 마지막이자 유일한 희망은 여러분의 관계에서 중요한 순간을 통해 길을 밝힐 수 있기를 바랍니다.

나는 방랑자를 사용하고 있으며 문제는 datadir옵션입니다. 기본 경로를 사용하면 모든 것이 정상이지만 방랑 공유 폴더로 변경하면 Maria가 시작되지 않습니다. 모든 / var / lib / mysql 파일을 새 폴더로 복사했습니다.

Windows 호스트, Centos 게스트가 있으며 구성은 다음과 같습니다.

MariaDb 버전 :

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

방랑자 파일 :

# -*- 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

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

1
로그가있는 파티션에 충분한 공간이 있습니까? 로그 파일을 삭제하고 다시 시작할 수 있습니까?
— Stoleg

@Stoleg 안녕하세요 Stoleg, 답변 주셔서 감사합니다. 파티션에 여유 공간이 많이 있습니다. 파일을 삭제하고 다시 시작하려고했는데 MariaDb가 파일을 작성하고 시작하지 않습니다.
— Sam Ivichuk

Maria가 사용하는 계정 READ에 대상 폴더에 대한 권한이 있습니까? 쓰기 권한으로 파일을 작성할 수 있지만 읽기 권한이 없을 수 있습니다. Maria가 해당 계정에서하는 것과 동일한 작업을 수행하십시오. 파일을 열어두고 잠글 수 없는가?
— Stoleg

답변:


15

우후, 찾았 어! 지금은 최소한. 소스를 파헤 치면 이것이 mmap()호출 과 관련이있을 수 있으며 lo- be - VirtualBox는 해당 영역에 버그가 있습니다 . 다행히도 동일한 소스가 해결 방법 인 log_bin 옵션을 암시 합니다. 이것을 명령 줄 --log_bin이나 구성 파일에서 로 활성화하면 log_bin=ON다시 작동합니다!

최신 정보

그들은 VirtualBox 6.0.6에서 수정했다고 말합니다!


정말 고맙습니다! tc.logWindows 10 호스트에서 Virtualbox를 사용할 때 오류가 수정되었습니다 .
— Ricky Boyce

이것은 Windows 10 Home, Docker Toolbox 18.03에서도 나에게 상당한 진전이었던 것 같습니다.
— rfay

22

/ var / lib / mysql에서 tc.log 파일을 삭제했습니다. mysql을 다시 시작하면 새로운 tc.log가 만들어졌습니다.

sudo rm -f /var/lib/mysql/tc.log

이것은 다소 안전하지 않은 느낌이지만 내 경우에는 효과가있었습니다!
— Peter

2
작동했지만 사용하는 것이 더 안전합니다.sudo mv /var/lib/mysql/tc.log /var/lib/mysql/tc_bkp.log
— Pedro Lobito

9

tc.log데이터 디렉토리에서를 제거하고 mysql-bin.index (이진 로그 목록과 함께 텍스트 파일)에서 오래된 항목을 제거 할 수 있습니다 . 이것이 개발 상자 인 경우 색인 파일 (mysql-bin.index)을 제거하여 강제로 재생산 할 수 있습니다.

또한 mysql사용자와 공유 폴더 ID 소유자 사이의 사용자 ID와 관련이있을 수 있습니다 . 여기 스 니펫이 있습니다.


그래도이 문제 의 원인 이 궁금 합니다. 어떻게 피할 수 있습니까? 감사합니다
— 3zzy

@ 3zzy-내 대답을 읽으십시오.
— Vilx-

@ 3zzy 아직 버그를 재현하지 않았습니다.
— 3manuek

이것은 실제로 발생하는 이상한 문제입니다. 이 파일에 정확히 무엇이 저장되어 있습니까? 나는 거기에있는 것을 보는 것을 잊어 버린 문제를 해결하기 위해 서둘러했습니다. 더 자세한 내용을 제공 할 수 있습니다.
— MageProspero

"디스크 공간 부족"오류가 오늘 tc.log를 손상시킨 것 같습니다.
— jchook

1

mysql / mariadb를 다시 실행하고 데이터를 잃어 버릴 염려가 없다면 (개발 환경에서) 이것이 내가 한 일입니다.

삭제 : ib_logfile1 ib_logfile0 aria_log_control aria_log.00000001 tc.log ib_data1

서버를 시작

스키마를 삭제하십시오 (파일이 포함 된 경우 스키마 폴더로 cd하고 모든 것을 삭제하십시오)

그런 다음 기존 덤프에서 데이터베이스를 다시 가져 왔습니다.

그런 다음 mariadb를 시작하면 정상적으로 나타납니다. 삭제 된 파일이 다시 작성되었습니다. ** 다시 이것은 개발자 전용입니다. 아마도 db를 설치할 수 있습니다 **


0

데이터베이스 데이터 폴더를 복사하려고 할 때이 문제가 발생했습니다. 따라서 데이터 폴더로 변경하고 다음 명령을 실행하여 모든 로그 파일을 삭제했습니다.

rm -rf *log*

그런 다음 도커를 다시 빌드하고 문제가 정렬되었습니다.


0

또한 tc.log를 제거 하여이 오류를 해결했습니다. XAMPP에서 tc.log 파일은 XAMPP/xamppfiles/var/mysql폴더에 있습니다-내 Mac 의 폴더는 다음 위치에 있습니다. /Applications/XAMPP/xamppfiles/var/mysql/tc.log


0

MariaDB의 공식 도커 컨테이너 내 에서이 문제가 발생했습니다. 제공된 다른 답변으로 로그 파일을 제거해도 도움이되지 않았습니다. 그러나 내 mmap대답은 허용 된 답변이 제안한 것과 관련이 있습니다.

시나리오에 맞게이 문제 를 해결하는 다양한 솔루션 을 찾았습니다 .

  1. 이진 로그 활성화
  2. mmap을 올바르게 작동하지 못하게하는 충돌 제거
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.