MariaDB ไม่สามารถเริ่มบันทึก tc


21

ฉันได้ลองวิธีแก้ปัญหาทุกอย่างบนอินเทอร์เน็ตแล้ว แต่เซิร์ฟเวอร์ MariaDb ของฉันยังคงล้มเหลวทรยศต่อให้ฉันทำลายโลก DevOps เล็ก ๆ ของฉันต่อไป ความพยายามของฉันในการทำให้สถานการณ์ราบรื่นขึ้นรวมถึงความพึงพอใจทุกประเภท: การเปลี่ยนการอนุญาตการกำหนดค่าการลบไฟล์บันทึกการอัปเกรด / การติดตั้งใหม่การย้ายไฟล์ภายในของเธอขึ้น ๆ แล้วย้าย DBMS อื่น ๆ ต่อต้านมากมานาน ความหวังสุดท้ายและข้อเดียวของฉันสำหรับพวกคุณที่จะให้แสงสว่างผ่านช่วงเวลาที่สำคัญเช่นนี้ในความสัมพันธ์ของเรา

ฉันกำลังใช้คนจรจัดและปัญหาคือdatadirตัวเลือก - เมื่อฉันใช้เส้นทางเริ่มต้นทุกอย่างก็โอเค แต่เมื่อฉันเปลี่ยนเป็นโฟลเดอร์แชร์ที่คนจรจัดมาเรียก็ไม่ได้เริ่มเลย ฉันได้คัดลอกไฟล์ / var / lib / mysql ทั้งหมดไปยังโฟลเดอร์ใหม่แล้ว

ฉันมีโฮสต์ Windows แขกของ Centos และการกำหนดค่าของฉันคือ:

รุ่น 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

บันทึกข้อผิดพลาด 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สิทธิ์ไปยังโฟลเดอร์ปลายทางหรือไม่ อาจมีโอกาสที่จะสามารถสร้างไฟล์ด้วย Write แต่ไม่มีสิทธิ์อ่าน ลองใช้การดำเนินการเช่นเดียวกับมาเรียที่จะทำภายใต้บัญชีของมัน อาจเป็นเพราะไฟล์ไม่สามารถเปิดและล็อคได้?
Stoleg

คำตอบ:


15

วูฉันพบแล้ว! อย่างน้อยตอนนี้ ขุดผ่านแหล่งที่มาแสดงให้เห็นว่าสิ่งนี้อาจมีสิ่งที่จะทำกับการmmap()โทรและแท้จริงและเห็น - VirtualBox มีข้อผิดพลาดในพื้นที่นั้น โชคดีที่คำแนะนำแหล่งเดียวกันในการแก้ปัญหา - The ตัวเลือก log_bin เปิดใช้งานสิ่งนี้ (จากบรรทัดคำสั่งเป็น--log_binหรือจากไฟล์กำหนดค่าเป็นlog_bin=ON) และสิ่งต่าง ๆ จะเริ่มทำงานอีกครั้ง!

ปรับปรุง

พวกเขากำลังพูดว่าพวกเขาได้แก้ไขแล้วใน VirtualBox 6.0.6!


ขอบคุณมาก! แก้ไขtc.logข้อผิดพลาดของฉันโดยใช้ Virtualbox บนโฮสต์ windows 10
Ricky Boyce

นี่เป็นความคืบหน้าสำคัญสำหรับฉันเช่นกัน Windows 10 Home, Docker Toolbox 18.03
rfay

22

ฉันสิ้นสุดการลบไฟล์ tc.log ใน / var / lib / mysql เมื่อฉันเริ่ม mysql อีกครั้งมันสร้าง tc.log ใหม่และเริ่มต้นขึ้น

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

ในขณะที่รู้สึกค่อนข้างไม่ปลอดภัยมันทำงานในกรณีของฉัน!
ปีเตอร์

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ผู้ใช้และเจ้าของรหัสโฟลเดอร์ที่ใช้ร่วมกันนี่เป็นตัวอย่างข้อมูล


แม้ว่าจะสงสัยสาเหตุของปัญหานี้แล้วฉันจะหลีกเลี่ยงได้อย่างไร ขอบคุณ
3zzy

@ 3zzy - อ่านคำตอบของฉัน
Vilx-

@ 3zzy ฉันยังไม่ได้ทำซ้ำข้อผิดพลาด
3manuek

นี่เป็นเรื่องแปลกที่จะพบอย่างแน่นอน สิ่งที่ถูกเก็บไว้ในไฟล์นี้อย่างแน่นอน? ฉันอยู่ในความรีบเร่งเพื่อแก้ไขปัญหาที่ฉันลืมดูที่นั่น ฉันอาจจะให้รายละเอียดเพิ่มเติม
MageProspero

ฉันสงสัยว่าข้อผิดพลาด "พื้นที่ดิสก์ไม่เพียงพอ" เสียหาย tc.log ของฉันในวันนี้
jchook

1

หากคุณเพียงต้องการให้ mysql / mariadb ทำงานอีกครั้งและไม่รังเกียจที่จะสูญเสียข้อมูลของคุณ (ในสภาพแวดล้อมแบบ dev) นี่คือสิ่งที่ฉันทำ

ลบ: ib_logfile1 ib_logfile0 aria_log_control aria_log.00000001 tc.log ib_data1

เริ่มเซิร์ฟเวอร์

ลบสคีมา (หากมีไฟล์อยู่ในโฟลเดอร์ของสคีมาให้ลบทุกอย่าง)

จากนั้นฉันก็นำเข้าฐานข้อมูลจากดัมพ์เก่าที่ฉันมี

จากนั้นฉันก็เริ่มมาเรียบและมันก็ดีขึ้น ไฟล์ที่ถูกลบถูกสร้างใหม่ ** อีกครั้งสำหรับนักพัฒนาเท่านั้น คุณอาจจะติดตั้ง 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. เปิดใช้งานบันทึก Binary
  2. ลบความขัดแย้งยับยั้ง mmap จากการทำงานอย่างถูกต้อง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.