Bagaimana untuk menyelesaikan masalah yang MySQL gagal dimulakan selepas mengalihkan direktori data

WBOY
Lepaskan: 2023-05-26 10:13:05
ke hadapan
2402 orang telah melayarinya

Gambaran keseluruhan latar belakang

Memandangkan direktori data MySQL diletakkan dalam direktori akar semasa memasang pangkalan data, kini terdapat ruang storan yang tidak mencukupi, saya ingin mengalihkan direktori data ke direktori lain melalui mv, tetapi data direktori dipindahkan ke Selepas direktori data lain, memulakan pangkalan data gagal.

Penghasilan semula masalah

Ujian ini berdasarkan MySQL 8.0.31

1 Tutup pangkalan data

mysql> shutdown;
Query OK, 0 rows affected (0.02 sec)
Salin selepas log masuk

2 direktori data semasa

shell> pwd
/mysql80
Salin selepas log masuk

3 Alihkan keseluruhan direktori data MySQL ke direktori lain melalui mv

shell>  mv /mysql80 /data
shell>  cd /data/mysql80/svr
shell>  ln -s mysql-8.0.31-linux-glibc2.12-x86_64 mysql
Salin selepas log masuk

4 Ubah suai kumpulan pemilik

shell> chown -R mysql.mysql /data
Salin selepas log masuk

5 direktori data dalam fail konfigurasi

shell> sed -i 's#/mysql80#/data/mysql80#g' my5001.cnf
Salin selepas log masuk

6 Mulakan pangkalan data

shell> /data/mysql80/svr/mysql/bin/mysqld_safe \
--defaults-file=/data/mysql80/conf/my5001.cnf --user=mysql &
Salin selepas log masuk

Pada masa ini, memulakan pangkalan data gagal dan log ralat melaporkan ralat berikut:

<. 🎜>mysqld: Fail '/mysql80/dbdata/data5001/log/binlog .000012' tidak dijumpai (OS errno 2 - Tiada fail atau direktori sedemikian)

2023-02-27T10:38:09.240506 +08:08:08 ERROR] [MY-010958] [Server] Tidak dapat membuka fail log
2023-02-27T10:38:09.240657+08:00 0 [ERROR] [MY-010041] [Server] Tidak dapat memulakan tc log.
2023-02-27T10:38:09.240718+08:00 0 [RALAT] [MY-010119] [Pelayan] Menggugurkan
2023-02-27T10:38:10.548:605+08:605+08:605 MY-010910] [Pelayan] /data/mysql80/svr/mysql/ bin/mysqld: Penutupan selesai (mysqld 8.0.31) Pelayan Komuniti MySQL - GPL.

Ralat yang dilaporkan di sini menunjukkan bahawa Fail

tidak ditemui, dan direktori binlog yang ditunjukkan dalam ralat masih sama seperti sebelumnya, tetapi direktori dalam fail konfigurasi telah diubah suai binlog

shell> grep &#39;log-bin&#39; my5001.cnf 
log-bin=/data/mysql80/dbdata/data5001/log/binlog
log-bin-trust-function-creators
Salin selepas log masuk

7

Akhirnya, melalui carian, didapati bahawa alamat laluan mutlak setiap fail

disimpan dalam fail

, di sini Laluan masih laluan sebelumnya, dan kandungannya adalah seperti berikut: binlog.index

shell> cat binlog.index 
/mysql80/dbdata/data5001/log/binlog.000001
/mysql80/dbdata/data5001/log/binlog.000002
/mysql80/dbdata/data5001/log/binlog.000003
/mysql80/dbdata/data5001/log/binlog.000004
/mysql80/dbdata/data5001/log/binlog.000005
/mysql80/dbdata/data5001/log/binlog.000006
/mysql80/dbdata/data5001/log/binlog.000007
/mysql80/dbdata/data5001/log/binlog.000008
/mysql80/dbdata/data5001/log/binlog.000009
/mysql80/dbdata/data5001/log/binlog.000010
/mysql80/dbdata/data5001/log/binlog.000011
/mysql80/dbdata/data5001/log/binlog.000012
Salin selepas log masuk
binlog Ubah suai laluan mutlak

dalam fail

: binlog.index

shell> sed -i &#39;s#/mysql80#/data/mysql80#g&#39; binlog.index
shell> cat binlog.index 
/data/mysql80/dbdata/data5001/log/binlog.000001
/data/mysql80/dbdata/data5001/log/binlog.000002
/data/mysql80/dbdata/data5001/log/binlog.000003
/data/mysql80/dbdata/data5001/log/binlog.000004
/data/mysql80/dbdata/data5001/log/binlog.000005
/data/mysql80/dbdata/data5001/log/binlog.000006
/data/mysql80/dbdata/data5001/log/binlog.000007
/data/mysql80/dbdata/data5001/log/binlog.000008
/data/mysql80/dbdata/data5001/log/binlog.000009
/data/mysql80/dbdata/data5001/log/binlog.000010
/data/mysql80/dbdata/data5001/log/binlog.000011
/data/mysql80/dbdata/data5001/log/binlog.000012
Salin selepas log masuk
binlog8 Mulakan pangkalan data

shell> /data/mysql80/svr/mysql/bin/mysqld_safe 
--defaults-file=/data/mysql80/conf/my5001.cnf --user=mysql &
Salin selepas log masuk

Pangkalan data berjaya dimulakan.

9. Sebagai nod hamba

Perlu diingat bahawa jika kejadian itu juga digunakan sebagai nod hamba untuk kejadian lain, anda juga perlu menetapkan laluan mutlak log masuk geganti fail relaylog.index, jika tidak, ia akan melaporkan Ralat berikut: Ralat log ralat:

2023-02-27T15:56:55.224372+08:00 0 [ERROR] [MY-010599] [ Repl] log /mysql80/dbdata/data5002/log /relaylog.000002 disenaraikan dalam indeks, tetapi gagal untuk statistik.
2023-02-27T15:56:55.224422+08:00 0 [ERROR] [MY]0110 [Repl] Ralat mengira ruang log geganti.

2023-02-27T15:56:55.226571+08:00 0 [ERROR] [MY-010426] [Repl] Hamba: Gagal memulakan struktur maklumat induk untuk saluran '' ; rekodnya mungkin masih ada dalam jadual 'mysql_master_info', pertimbangkan untuk memadamkannya.
2023-02-27T15:56:55.226622+08:00 0 [ERROR] [MY-010529] [Repl] Gagal mencipta atau pulihkan repositori maklumat replikasi.

Ralat juga akan dilaporkan semasa melaksanakan replika permulaan:

# Ralat pelanggan
mysql> 1872 (HY000): Hamba gagal untuk memulakan struktur maklumat log geganti daripada repositori

# laporan ralat log ralat
2023-02-27T15:57:53.858798+08:00 8 [ERROR] [MY-013124] [ Repl] Slave SQL untuk saluran '': Slave gagal memulakan struktur maklumat log geganti daripada repositori, Error_code: MY-013124


10

Ubah suai laluan mutlak log geganti dalam fail

sed -i &#39;s#/mysql80#/data/mysql80#g&#39; relaylog.index
Salin selepas log masuk

Semula Mulakan pangkalan data dan mulakan replikasi tuan-hambarelaylog.index

# 重启实例
mysql> restart;
# 启动主从复制
mysql> start replica;
Salin selepas log masuk
Pada masa ini, replikasi tuan-hamba kembali normal.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah yang MySQL gagal dimulakan selepas mengalihkan direktori data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!