MariaDBはtcログを初期化できません


21

インターネットですべてのソリューションを試しましたが、私のMariaDbサーバーは失敗し続け、私を裏切り、私の小さなDevOpsの世界を破壊し続けています。状況をスムーズにしようとする私の試みには、あらゆる種類の満足が含まれていました:パーミッションの変更、設定、ログファイルの削除、アップグレード/再インストール、内部ファイルの上下移動、他のDBMSの削除、彼女以外のすべての削除...非常に長い間抵抗します 私たちの関係におけるこのような重大な瞬間を通り抜ける道を照らしてくれることを皆さんに願っています。

Vagrant datadirを使用していますが、問題はオプションにあります-デフォルトのパスを使用する場合はすべて問題ありませんが、Vagrant共有フォルダに変更するとMariaは起動しません。すべての/ 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、返信ありがとうございます。パーティションには多くの空き領域があります。ファイルを削除して再起動してみましたが、MariaDbが作成し、起動しません
サムIvichuk

Mariaが使用するアカウントにはREAD、宛先フォルダーへのアクセス許可がありますか?書き込みでファイルを作成できる可能性がありますが、読み取り権限はありません。Mariaがアカウントで行うのと同じ操作を試してください。ファイルを開いたままにしてロックできませんか?
ストレッグ

回答:


15

わかった!今のところ、少なくとも。ソースを掘り下げると、これはmmap()呼び出しに関係している可能性があり、見よ-VirtualBoxにはその領域にバグがあります。幸いなことに、同じソースが回避策-log_binオプションを示唆しています。これを有効にし(コマンドライン--log_binから、またはconfigファイルからlog_bin=ON)、作業が再開します!

更新

彼らはVirtualBox 6.0.6で修正したと言っています!


どうもありがとうございます!これは私の修正tc.logにより、Windows 10ホストでVirtualboxを使用しエラーがれました。
リッキーボイス

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

これはやや安全ではないと感じていますが、私の場合はうまくいきました!
ピーター

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)を削除して、強制的に再作成できます。

また、それは間のユーザーIDに関連している可能性があります mysqlユーザーと共有フォルダのIDの所有者、ここではそうするスニペットです。


この問題の原因に興味がありますが、どうすれば回避できますか?ありがとう
3zzy

@ 3zzy-私の答えを読んでください。
ヴィルクス

@ 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を開始しましたが、うまくいきました。削除されたファイルが再作成されました。**繰り返しますが、これは開発者専用です。あなたはおそらくあなたのデータベースをインストールすることができます**


0

データベースデータフォルダーをコピーしようとしたときに、この問題に直面しました。そこで、データフォルダーに変更し、次のコマンドを実行してすべてのログファイルを削除しました。

rm -rf *log*

その後、ドッカーを再構築し、問題を整理しました。


0

また、tc.logを削除してこのエラーを解決しました。XAMPPでは、tc.logファイルはXAMPP/xamppfiles/var/mysqlフォルダにあります-私のMacでは次の場所にあります: /Applications/XAMPP/xamppfiles/var/mysql/tc.log


0

MariaDBの公式Dockerコンテナ内でこの問題が発生しました。他の回答が提供されたため、ログファイルを削除しても役に立ちませんでした。しかし、mmap受け入れられた答えが示唆するように、私の問題は関連していた。

私のシナリオでこれを修正するためのさまざまな解決策を見つけました

  1. バイナリログを有効にする
  2. mmapが正常に機能することを妨げる競合を削除する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.