Di atas gagal menyelesaikan masalah bagi saya di Ubuntu 12.04 (Precise). Saya menemukan bahwa orang perlu mengedit file /etc/apparmor.d/tunables/alias untuk memasukkan baris "alias / var / lib / mysql / -> / newpath /," Dengan ini, saya tidak memerlukan apapun perubahan pada salah satu file AppArmor lainnya. Ini bekerja segera setelah me-restart AppArmor dengan "/etc/init.d/apparmor restart" dan MySQL dengan "restart mysql".
pada edisi mak (yang diperlukan) jangan lupa koma di akhir barisalias /var/lib/mysql/ -> /newpath/,
Michael
4
Tidak bisa cukup menekankan betapa pentingnya komentar Michel di atas: TAMBAHKAN TRAILING COMMA dan simpan beberapa neuron. Maaf tentang tutupnya.
alx
2
Tidak bekerja untuk saya. Saya mendapatkan Pekerjaan karena layanan mysql. gagal. Lihat 'systemctl status mysql.service' dan 'journalctl -xn' untuk detail ketika mencoba me-restart mysqld, dan kesalahannya adalah disk sudah penuh. Ada 500GB ruang kosong ...
Frank H.
17
Cepat dan mudah dilakukan:
#Create new directory for MySQL data
mkdir /new/dir/for/mysql
#Set ownership of new directory tomatch existing one
chown --reference=/var/lib/mysql /new/dir/for/mysql#Set permissions on new directory tomatch existing one
chmod --reference=/var/lib/mysql /new/dir/for/mysql# Stop MySQL before copying over files
service mysql stop
# Copy all files indefault directory,to new one, retaining perms (-p)
cp -rp /var/lib/mysql/* /new/dir/for/mysql/
Edit /etc/my.cnffile, dan di bawah [mysqld]tambahkan baris ini:
datadir=/new/dir/for/mysql/
Jika Anda menggunakan CageFS (dengan atau tanpa CloudLinux) dan ingin mengubah direktori MySQL, Anda HARUS menambahkan direktori baru ke file ini:
Terima kasih, dan untuk menambahkan jika Anda ingin benar-benar skrip ini seperti yang saya lakukan, Anda dapat menggunakan ini: sed -i | datadir = / var / lib / mysql | datadir = / data / var / lib / mysql | g '/ etc / my.cnf
berimbolo
Ini tidak berhasil untuk saya. Saya mencoba ini dan banyak alternatif lain yang berbeda. Saya sampai pada kesimpulan yang sama dengan user3338098 ketika dia mengatakan ini adalah satu-satunya cara yang berfungsi: serverfault.com/questions/503887/…
Volksman
@Volksman semua tautan mengatakan bahwa ia harus menghapus dan menginstal ulang ... kemungkinan Anda berdua memiliki beberapa masalah spesifik server lainnya, karena baik MySQL dan MariaDB keduanya mendukung konfigurasi datadir, dan saya baru-baru melakukan ini (6 bulan lalu) pada yang lain server tanpa masalah
sMyles
@sMyles ya, itu menghapus dan menginstal tetapi setelah me-mount / var / lib / mysql di tempat lain yaitu partisi mega tidak seperti yang / mount sebelumnya. Jika ada masalah khusus dengan sistem kami, akan sangat bagus untuk mengetahui bahwa ini memang benar. Ini adalah instalasi standar baru Stock Centos 7 OS dengan RAID 10 dengan 8x HDD tetapi biasanya rincian array disk yang transparan untuk perangkat lunak.
Volksman
15
Anda harus menyalin data saat ini ke direktori baru dan mengubah my.cnfMySQL Anda.
Yah, itulah yang tidak bisa saya lakukan. Saya ingin mengubah direktori tetapi saya ingin membuat database baru di direktori baru. Dan Ingin mengakses direktori lama dan basis data direktori baru.
MySQL DBA
1
@MySQL DBA: jika Anda menggunakan beberapa ln -slynx simbolik statis, bukankah itu akan membuatnya?
RageZ
Yah saya agak bingung dengan penggunaan perintah ini. Seperti yang saya jelaskan sebelumnya saya ingin membuat database baru di direktori baru. Apakah mungkin dengan symlink.
MySQL DBA
1
Anda dapat membuat direktori baru, gunakan tautan simbolis untuk membuat file muncul di direktori baru dan ubahlah Andamy.cnf
File /etc/systemd/system/mysqld.service tidak ada di sini. Tahu di mana aku harus mencari?
Ron Piggott
1
Bagi mereka yang menggunakan MariaDB yang layanan file yang terletak di /lib/systemd/system/[email protected]
Ron Piggott
5
Saya ingin menyimpan database di mesin saya, tetapi juga memiliki data di hard drive eksternal saya, dan beralih antara menggunakan keduanya.
Jika Anda menggunakan Mac, dan menginstal MySQL menggunakan Homebrew, ini seharusnya cocok untuk Anda. Jika tidak, Anda hanya perlu mengganti lokasi yang sesuai untuk MySQL datadirdi komputer Anda.
#cd to my data dir location
cd /usr/local/var/#copy contents of local data directory to the new location
cp -r mysql//Volumes/myhd/mydatadir/#temporarily move the old datadir
mv mysql mysql.local
#symlink to the new location
ln -s /Volumes/myhd/mydatadir mysql
Kemudian ketika Anda ingin beralih kembali cukup lakukan:
mv mysql mysql.remote
mv mysql.local mysql
dan Anda menggunakan basis data lokal Anda lagi. Semoga itu bisa membantu.
ini tidak persis menjawab pertanyaan seperti yang dinyatakan - namun ini persis apa yang saya cari - dan itu adalah cara yang rapi untuk menangani kasus tepi / bug yang my.cnf tidak menangani spasi dengan baik: bugs.mysql.com /bug.php?id=26033 . Saya akan menghubungkan solusi ini pada laporan bug itu.
Kemudian ubah datadir di /etc/mysql/my.cnf
Mulai mysqld Anda
Catatan:
# 1: mungkin Anda harus menyesuaikan pengaturan SELinux Anda (coba dengan SELinux dinonaktifkan jika ada masalah), Apparmor (Ubuntu) mungkin juga menjadi masalah.
mungkin ini tidak berfungsi untuk distribusi lain, tetapi jika Anda menggunakan ubuntu, ini berfungsi dengan baik untuk saya dan saya mengubah jalur untuk setiap server ubuntu yang baru diinstal untuk mengaktifkan raid0.
naddame
2
Saya tahu orang-orang merendahkan ini, tetapi saya ingin mengatakan kepada Anda bahwa ini telah menyelamatkan hari saya. Terima kasih!
Daniel Loureiro
3
Solusi ini berfungsi di Windows 7 menggunakan Workbench. Anda memerlukan hak Administrator untuk melakukan ini. Ini menciptakan persimpangan (seperti jalan pintas) ke mana pun Anda benar-benar ingin menyimpan data Anda
Buka Workbench dan pilih INSTANCE - Startup / Shutdown Hentikan server
Arahkan ke C: \ ProgramData \ MySQL \ MySQL Server 5.6
Klik kanan pada Data dan pilih "MOVE dan kemudian LINK folder untuk ..." Terima tujuan Titik peringatan ke "Direktori data baru Anda di sini tanpa tanda kutip" Klik MOVE DAN LINK
Sekarang buka "Direktori data baru Anda di sini tanpa tanda kutip"
Klik kanan pada Data Pergi ke tab keamanan Klik Edit Klik Tambah Jenis LAYANAN NETWORK kemudian Periksa Nama Klik OK Klik kotak centang Izinkan Kontrol Penuh dan kemudian OK
Kembali ke Workbench dan Mulai server
Metode ini bekerja untuk saya menggunakan MySQL Workbench 6.2 pada Windows 7 Enterprise.
Semuanya seperti @ user1341296 katakan, ditambah ...
Anda lebih baik tidak mengubah /etc/mysql/my.cnf
Alih-alih Anda ingin membuat file baru /etc/mysql/conf.d/ext.cnf(nama apa pun, tetapi ekstensi harus cnf)
Dan masukkan perubahan Anda:
[mysqld]
datadir=/vagrant/mq/mysql
Lewat sini
Anda tidak perlu mengubah file yang ada (skrip otomatisasi lebih mudah)
Tidak ada masalah dengan pembaruan versi MySQL (dan ini konfigurasi!).
Jika Anda adalah pengguna Windows dan mendarat di sini untuk mengetahui bahwa semua jawaban untuk Pengguna Linux, jangan kecewa! Saya tidak akan membiarkan Anda membuang waktu seperti yang saya lakukan.
Sedikit omong kosong sebelum solusi:
MySQL menggunakan direktori Data untuk menyimpan data dari berbagai basis data yang Anda buat. Yah, pada akhirnya, itu harus menyimpannya dalam bentuk file dengan beberapa jugglery ditambahkan dalam aplikasi dan format file untuk memastikan janji-janji Database yang Anda pelajari di kelas-kelas Database utuh.
Sekarang Anda ingin memastikan ada cukup ruang untuk menyimpan basis data besar yang mungkin Anda buat di masa depan, dan Anda berpikir, Hei! Saya ingin memasukkannya ke drive lain yang memiliki lebih banyak ruang.
Jadi, Anda melakukan yang berikut ini.
Langkah - 1 : Menghentikan layanan MySQL.
Window Key+ R - will open Run
servies.msc - will open services manager
Locate MySQL80 (80isfor version 8.0, look for the one you've).
Stop it.(Right click, Stop)
Langkah - 2 : Mencari tahu direktori Data saat ini
Goto C:\ProgramData\MySQL\MySQL Server 8.0
Secara default, harus ada folder di sini bernama Data, ini adalah yang digunakan oleh MySQL dalam pengaturan default (asalkan mereka belum menemukan lokasi lain yang lebih baik), tetapi mari kita periksa.
Temukan my.inifile, harus ada di sana.
Buka di editor (Notepad ++ mungkin).
Lakukan CTRL + F untuk mencari tahu datadirdalam file.
Apa pun yang disebutkan di sini adalah lokasi aktual yang sedang digunakan oleh MySQL untuk direktori data. Ini yang ingin Anda ubah.
Langkah - 3 : Menggantinya dengan direktori data baru.
Katakanlah Anda ingin direktori data baru Anda menjadi W: __ MySQL_Data. Mari kita ubah
datadirnilai dalam my.inifile ke nilai ini. Biarkan nilai sebelumnya dikomentari sehingga Anda tidak harus mengingatnya.
# Path to the database root
# datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
datadir=W:/__MySQL_Data
>> xcopy "\C:\ProgramData\MySQL\MySQL Server 8.0""W:\"/E /H /K /O /X
Dan ganti nama folder yang disalin ke nilai baru datadiryang Anda ubah. Sini:W:/__MySQL_Data
Mengapa tidak menyalin saja? Nah karena itu bukan COOL !, ini membantu Anda tidak kehilangan izin pada folder yang disalin, sehingga ketika Anda me-restart MySQL80, itu tidak akan memberikan kesalahan bodoh: "Layanan MySQL80 pada Komputer Lokal mulai dan kemudian berhenti. Beberapa layanan berhenti secara otomatis jika mereka tidak digunakan oleh layanan atau program lain. " - Courtesy: Microsoft
Langkah - 4 : Mulai ulang layanan
Well, go back to the Services Manager toStart again,"MySQL80" that you stopped,to restart it again.
Langkah - 5 : Selesai! Sekarang kembali bekerja !!
Terima kasih itu membantu tetapi peringatan: my.ini tidak dapat ditulisi oleh pengguna normal kecuali Anda mengubah izinnya. Oh dan ProgramData adalah folder tersembunyi sehingga Anda harus mengubah pengaturan folder Explorer untuk melihatnya.
JonP
1
Saya sering perlu melakukan ini ketika meningkatkan mesin, bergerak dari kotak ke kotak. Selain memindahkan / var / lib / mysql ke lokasi yang lebih baik, saya sering perlu mengembalikan tabel DB lama dari instalasi MySQL lama. Untuk melakukan ini ...
Hentikan mysql. Ikuti instruksi di atas, itu perlu.
Salin direktori basis data - akan ada satu untuk setiap basis data instalasi lama Anda - ke lokasi DATADIR yang baru. Tetapi hilangkan direktori "mysql" dan "performance_schema".
Izin yang benar di antara direktori basis data yang disalin. Kepemilikan harus mysql: mysql, direktori harus 700, dan file harus 660.
Mulai ulang mysql. Tergantung pada instalasi Anda, file DB versi lama harus diperbarui.
maaf untuk suara turun, solusi ini mungkin benar, belum mencobanya.
user3338098
1
Kami harus memindahkan MySQL ke /homedirektori karena dipetakan dari disk fisik lain. Untuk membuat hidup lebih sederhana, alih-alih mengubah direktori di my.cnf, kami telah memetakan direktori baru /home/mysqldi tempat direktori asli /var/lib/mysql. Ini bekerja untuk kita seperti jimat (diuji pada CentOS 7.1).
Jika Anda ingin melakukan ini secara terprogram (tidak ada entri teks manual dengan gedit) di sini adalah versi untuk Dockerfile berdasarkan jawaban user1341296 di atas:
FROM spittet/ruby-mysql
MAINTAINER you@gmail.com
RUN cp -R -p /var/lib/mysql /dev/shm &&\
rm -rf /var/lib/mysql &&\
sed -i -e 's,/var/lib/mysql,/dev/shm/mysql,g'/etc/mysql/my.cnf &&\/etc/init.d/mysql restart
Di bawah SuSE 13.1, ini berfungsi dengan baik untuk memindahkan direktori data mysql di tempat lain, misalnya ke / home / example_user /, dan untuk memberinya nama yang lebih informatif:
Di / var / lib /:
# mv -T mysql /home/example_user/mysql_datadir
# ln -s /home/example_user/mysql_datadir ./mysql
Untuk salah satu lingkungan saya mengubah direktori data mysql ke lokasi baru tetapi selama restart server mysql, butuh waktu. Jadi saya memeriksa port, dan menemukan bahwa proses lain mendengarkan pada port mysql. Jadi saya mematikan proses dan me-restart server mysql dan bekerja dengan baik.
Selamat Datang di Stack Overflow! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Tim Diekmann
0
Langkah-langkah di atas adalah dasar dan dasar. Saya mengikuti mereka dan masih mendapat kesalahan "mysql gagal memulai".
Agar folder baru untuk menyimpan data mysql, Anda perlu memastikan bahwa folder tersebut memiliki izin dan kepemilikan mysql: mysql.
Selain itu, perlu memeriksa izin dan kepemilikan direktori induk dari mysql jika memiliki, katakanlah, / data / mysql /. Di sini / data / direktori harus menjadi root: root. Saya memperbaiki kesalahan "mysql gagal memulai" setelah mengubah kepemilikan direktori induk dari / mysql. OS di VM saya adalah RHEL 7.6.
Saya mencoba selinux di RHEL7.6 dengan mengubah SELINUX = menegakkan ke SELINUX = permisif, tidak berhasil untuk saya.
user3325137William
0
Dimungkinkan juga untuk menghubungkan datadir. Setidaknya di macOS, lingkungan dev.
(homebrew) misalnya
# make sure you're not overwriting anything important,backup existing data
mv /usr/local/var/mysql [your preferred data directory]
ln -s [your preferred data directory]/usr/local/var/mysql
seperti yang dijelaskan di sini serverfault.com/questions/503887/... selinux tidak bersalah ada beberapa masalah lain yang mencegah perubahan datadirproperti
Jawaban:
Hentikan MySQL menggunakan perintah berikut:
Salin direktori data yang ada (default berada di
/var/lib/mysql
) menggunakan perintah berikut:edit file konfigurasi MySQL dengan perintah berikut:
Cari entri
datadir
, dan ubah jalur (yang seharusnya/var/lib/mysql
) ke direktori data baru.Di terminal, masukkan perintah:
Cari garis yang dimulai dengan
/var/lib/mysql
. Ubah/var/lib/mysql
baris dengan jalur baru.Simpan dan tutup file.
Mulai ulang profil AppArmor dengan perintah:
Mulai ulang MySQL dengan perintah:
Sekarang login ke MySQL dan Anda dapat mengakses database yang sama seperti sebelumnya.
sumber
alias /var/lib/mysql/ -> /newpath/,
Cepat dan mudah dilakukan:
Edit
/etc/my.cnf
file, dan di bawah[mysqld]
tambahkan baris ini:Jika Anda menggunakan CageFS (dengan atau tanpa CloudLinux) dan ingin mengubah direktori MySQL, Anda HARUS menambahkan direktori baru ke file ini:
Dan kemudian jalankan perintah ini:
sumber
Anda harus menyalin data saat ini ke direktori baru dan mengubah
my.cnf
MySQL Anda.Anda harus menyalin database ketika server tidak berjalan .
sumber
ln -s
lynx simbolik statis, bukankah itu akan membuatnya?my.cnf
Pertama, Anda harus menghentikan server mysql. misalnya
Setelah itu Anda harus menyalin direktori data lama (misalnya / var / lib / mysql) termasuk. hak istimewa ke direktori baru Anda melalui
sekarang Anda dapat mengubah
/etc/mysql/my.cnf
data baru dan me-restart serversumber
Jika seperti saya Anda menggunakan debian dan Anda ingin memindahkan direktori mysql ke rumah Anda atau path di / home / ..., solusinya adalah:
Suatu hari untuk menemukan solusi bagi saya pada dokumentasi mariadb. Semoga ini bisa membantu beberapa orang!
sumber
Saya ingin menyimpan database di mesin saya, tetapi juga memiliki data di hard drive eksternal saya, dan beralih antara menggunakan keduanya.
Jika Anda menggunakan Mac, dan menginstal MySQL menggunakan Homebrew, ini seharusnya cocok untuk Anda. Jika tidak, Anda hanya perlu mengganti lokasi yang sesuai untuk MySQL
datadir
di komputer Anda.Kemudian ketika Anda ingin beralih kembali cukup lakukan:
dan Anda menggunakan basis data lokal Anda lagi. Semoga itu bisa membantu.
sumber
Pertama hentikan mysqld
Kemudian ubah datadir di
/etc/mysql/my.cnf
Mulai mysqld Anda
Catatan:
# 1: mungkin Anda harus menyesuaikan pengaturan SELinux Anda (coba dengan SELinux dinonaktifkan jika ada masalah), Apparmor (Ubuntu) mungkin juga menjadi masalah.
# 2: lihat Referensi Instal MySQL DB
sumber
Pertama-tama hentikan mysql Anda
salin data mysql ke lokasi baru.
jika Anda menggunakan apparmor, edit file berikut dan lakukan hal berikut
Ganti di mana / var / lib / oleh / yourdirectory / lalu tambahkan follwoing jika tidak ada ke file
Simpan file dengan perintah
Edit file my.cnf
Ganti di mana / var / lib / oleh / yourdirectory / lalu simpan dengan perintah
akhirnya mulai mysql
@lihat lebih lanjut tentang raid0, optimasi ici
sumber
Solusi ini berfungsi di Windows 7 menggunakan Workbench. Anda memerlukan hak Administrator untuk melakukan ini. Ini menciptakan persimpangan (seperti jalan pintas) ke mana pun Anda benar-benar ingin menyimpan data Anda
Buka Workbench dan pilih INSTANCE - Startup / Shutdown Hentikan server
Instal Junction Master dari https://bitsum.com/junctionmaster.php
Arahkan ke C: \ ProgramData \ MySQL \ MySQL Server 5.6
Klik kanan pada Data dan pilih "MOVE dan kemudian LINK folder untuk ..." Terima tujuan Titik peringatan ke "Direktori data baru Anda di sini tanpa tanda kutip" Klik MOVE DAN LINK
Sekarang buka "Direktori data baru Anda di sini tanpa tanda kutip"
Klik kanan pada Data Pergi ke tab keamanan Klik Edit Klik Tambah Jenis LAYANAN NETWORK kemudian Periksa Nama Klik OK Klik kotak centang Izinkan Kontrol Penuh dan kemudian OK
Kembali ke Workbench dan Mulai server
Metode ini bekerja untuk saya menggunakan MySQL Workbench 6.2 pada Windows 7 Enterprise.
sumber
Semuanya seperti @ user1341296 katakan, ditambah ...
Anda lebih baik tidak mengubah
/etc/mysql/my.cnf
Alih-alih Anda ingin membuat file baru/etc/mysql/conf.d/ext.cnf
(nama apa pun, tetapi ekstensi haruscnf
)Dan masukkan perubahan Anda:
Lewat sini
sumber
Jika Anda adalah pengguna Windows dan mendarat di sini untuk mengetahui bahwa semua jawaban untuk Pengguna Linux, jangan kecewa! Saya tidak akan membiarkan Anda membuang waktu seperti yang saya lakukan.
Sedikit omong kosong sebelum solusi:
MySQL menggunakan direktori Data untuk menyimpan data dari berbagai basis data yang Anda buat. Yah, pada akhirnya, itu harus menyimpannya dalam bentuk file dengan beberapa jugglery ditambahkan dalam aplikasi dan format file untuk memastikan janji-janji Database yang Anda pelajari di kelas-kelas Database utuh.
Sekarang Anda ingin memastikan ada cukup ruang untuk menyimpan basis data besar yang mungkin Anda buat di masa depan, dan Anda berpikir, Hei! Saya ingin memasukkannya ke drive lain yang memiliki lebih banyak ruang.
Jadi, Anda melakukan yang berikut ini.
Langkah - 1 : Menghentikan layanan MySQL.
Langkah - 2 : Mencari tahu direktori Data saat ini
Secara default, harus ada folder di sini bernama
Data
, ini adalah yang digunakan oleh MySQL dalam pengaturan default (asalkan mereka belum menemukan lokasi lain yang lebih baik), tetapi mari kita periksa.Temukan
my.ini
file, harus ada di sana.Buka di editor (Notepad ++ mungkin).
Lakukan CTRL + F untuk mencari tahu
datadir
dalam file.Apa pun yang disebutkan di sini adalah lokasi aktual yang sedang digunakan oleh MySQL untuk direktori data. Ini yang ingin Anda ubah.
Langkah - 3 : Menggantinya dengan direktori data baru.
Katakanlah Anda ingin direktori data baru Anda menjadi W: __ MySQL_Data. Mari kita ubah
datadir
nilai dalammy.ini
file ke nilai ini. Biarkan nilai sebelumnya dikomentari sehingga Anda tidak harus mengingatnya.Sekarang gunakan
xcopy
untuk menyalin defaultdatadir
keW:\
. Luncurkan command prompt (Window + R, cmd, Enter)Dan ganti nama folder yang disalin ke nilai baru
datadir
yang Anda ubah. Sini:W:/__MySQL_Data
Mengapa tidak menyalin saja? Nah karena itu bukan COOL !, ini membantu Anda tidak kehilangan izin pada folder yang disalin, sehingga ketika Anda me-restart
MySQL80
, itu tidak akan memberikan kesalahan bodoh: "Layanan MySQL80 pada Komputer Lokal mulai dan kemudian berhenti. Beberapa layanan berhenti secara otomatis jika mereka tidak digunakan oleh layanan atau program lain. " - Courtesy: MicrosoftLangkah - 4 : Mulai ulang layanan
Langkah - 5 : Selesai! Sekarang kembali bekerja !!
sumber
Saya sering perlu melakukan ini ketika meningkatkan mesin, bergerak dari kotak ke kotak. Selain memindahkan / var / lib / mysql ke lokasi yang lebih baik, saya sering perlu mengembalikan tabel DB lama dari instalasi MySQL lama. Untuk melakukan ini ...
sumber
Kami harus memindahkan MySQL ke
/home
direktori karena dipetakan dari disk fisik lain. Untuk membuat hidup lebih sederhana, alih-alih mengubah direktori di my.cnf, kami telah memetakan direktori baru/home/mysql
di tempat direktori asli/var/lib/mysql
. Ini bekerja untuk kita seperti jimat (diuji pada CentOS 7.1).Buat dir baru dan atur izin yang benar.
Hentikan MySQL jika berjalan.
Pindahkan direktori data.
Buat tunggangan permanen dan jalankan.
Mulai ulang server.
sumber
Jika Anda ingin melakukan ini secara terprogram (tidak ada entri teks manual dengan gedit) di sini adalah versi untuk Dockerfile berdasarkan jawaban user1341296 di atas:
Tersedia di hub Docker di sini: https://hub.docker.com/r/richardjecooke/ruby-mysql-in-memory/
sumber
Pertama, Anda harus tahu di mana file konfigurasi Anda? dimana file konfigurasi anda?
JIKA Anda menginstal dengan apt-get atau yum install。
file konfigurasi mungkin muncul di
datafile dapat muncul di
dan apa yang harus Anda lakukan adalah
dan kemudian pekerjaan selesai.
Tetapi jika Anda tidak menginstalnya dengan apt atau yum, direcotry mungkin tidak seperti ini, dan Anda dapat menemukan file mysql dengan
sumber
Di bawah SuSE 13.1, ini berfungsi dengan baik untuk memindahkan direktori data mysql di tempat lain, misalnya ke / home / example_user /, dan untuk memberinya nama yang lebih informatif:
Di / var / lib /:
Saya memulai kembali mysql:
tetapi curiga bahwa itu pun tidak perlu.
sumber
Untuk salah satu lingkungan saya mengubah direktori data mysql ke lokasi baru tetapi selama restart server mysql, butuh waktu. Jadi saya memeriksa port, dan menemukan bahwa proses lain mendengarkan pada port mysql. Jadi saya mematikan proses dan me-restart server mysql dan bekerja dengan baik.
Saya mengikuti langkah-langkah berikut untuk mengubah direktori data yang berfungsi sangat baik. ubah direktori data mysql di Linux
sumber
Langkah-langkah di atas adalah dasar dan dasar. Saya mengikuti mereka dan masih mendapat kesalahan "mysql gagal memulai".
Agar folder baru untuk menyimpan data mysql, Anda perlu memastikan bahwa folder tersebut memiliki izin dan kepemilikan mysql: mysql.
Selain itu, perlu memeriksa izin dan kepemilikan direktori induk dari mysql jika memiliki, katakanlah, / data / mysql /. Di sini / data / direktori harus menjadi root: root. Saya memperbaiki kesalahan "mysql gagal memulai" setelah mengubah kepemilikan direktori induk dari / mysql. OS di VM saya adalah RHEL 7.6.
sumber
Dimungkinkan juga untuk menghubungkan datadir. Setidaknya di macOS, lingkungan dev.
(homebrew) misalnya
Mulai ulang mysql.
sumber
Jika Anda menggunakan SE linux, atur ke mode permisif dengan mengedit / etc / selinux / config dan mengubah SELINUX = menegakkan ke SELINUX = permisif
sumber
datadir
properti