মাইএসকিউএল ডেটা ডিরেক্টরি কীভাবে পরিবর্তন করবেন?


158

আমার ডিফল্ট মাইএসকিউএল ডেটা ডিরেক্টরিকে অন্য পথে পরিবর্তন করা কি সম্ভব? আমি কি পুরানো অবস্থান থেকে ডাটাবেসগুলি অ্যাক্সেস করতে সক্ষম হব?


3
যদি উইন 8-এ সিস্টেম থাকে তবে এই প্রশ্নের জন্য কোনও উত্তর উপলব্ধ আছে?
জোনাথন এম

1
উইন্ডোজের জন্য - এখানে দেখুন: dba.stackexchange.com/questions/24403/…
ডাঃ অ্যারন ডিসনো

ম্যাক ব্যবহারকারীদের জন্য আপনার প্রয়োজন হয় এই এবং @ user1341296 এর উত্তর থেকে 1-4 ধাপ।
শেলবাই

উত্তর:


270
  1. নিম্নলিখিত কমান্ডটি ব্যবহার করে মাইএসকিউএল বন্ধ করুন:

    sudo /etc/init.d/mysql stop
  2. /var/lib/mysqlনিম্নলিখিত কমান্ডটি ব্যবহার করে বিদ্যমান ডেটা ডিরেক্টরি (ডিফল্ট অবস্থিত ) অনুলিপি করুন :

    sudo cp -R -p /var/lib/mysql /newpath
  3. নিম্নলিখিত কমান্ডের সাথে মাইএসকিউএল কনফিগারেশন ফাইলটি সম্পাদনা করুন:

    sudo gedit /etc/mysql/my.cnf   # or perhaps /etc/mysql/mysql.conf.d/mysqld.cnf
  4. প্রবেশের জন্য সন্ধান করুন datadirএবং /var/lib/mysqlনতুন ডেটা ডিরেক্টরিতে পথটি (যা হওয়া উচিত ) পরিবর্তন করুন ।

  5. টার্মিনালে, কমান্ডটি প্রবেশ করুন:

    sudo gedit /etc/apparmor.d/usr.sbin.mysqld
  6. শুরু লাইন জন্য সন্ধান করুন /var/lib/mysql/var/lib/mysqlনতুন পথের সাথে লাইনে পরিবর্তন করুন ।

  7. সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

  8. কমান্ড দিয়ে অ্যাপআর্মার প্রোফাইলগুলি পুনরায় চালু করুন:

    sudo /etc/init.d/apparmor reload
  9. কমান্ডটি দিয়ে মাইএসকিউএল পুনরায় চালু করুন:

    sudo /etc/init.d/mysql restart
  10. এখন মাইএসকিউএল এ লগইন করুন এবং আপনি আগের মতো একই ডাটাবেসগুলি অ্যাক্সেস করতে পারেন।


33
উপরেরগুলি আমার জন্য উবুন্টু 12.04 (যথাযথ) সমস্যার সমাধান করতে ব্যর্থ হয়েছে। আমি জানতে পেরেছি যে একটির জন্য "উরফ / ভার / লিবি / মাইএসকিএল / -> / নতুনপথ /" একটি লাইন অন্তর্ভুক্ত করার জন্য আপনার /etc/apparmor.d/tunables/alias ফাইলটি সম্পাদনা করতে হবে, আমার কোনও দরকার নেই অন্য কোনও অ্যাপআর্মার ফাইলে পরিবর্তন হয়। এটি "/etc/init.d/apparmor পুনঃসূচনা" এবং মাইএসকিউএল "পুনঃসূচনা mysql" এর সাথে অ্যাপআর্মার পুনরায় চালু করার সাথে সাথে কাজ করে।
মাক

2
সেন্টোস-এ অ্যাপারমার প্রাসঙ্গিক নয়। পরিবর্তে সেখানে সেলিনাক্স রয়েছে। কীভাবে এখানে অক্ষম করতে বা পরিচালনা করতে হয় তা পড়তে পারেন ব্লগস.অরাকল.com/jsmyth/entry/selinux_and_mysql
নোয়াম

12
ম্যাকের সংস্করণে (যা প্রয়োজনীয়) লাইনের শেষে কমাটি ভুলে যাবেন না alias /var/lib/mysql/ -> /newpath/,
মাইকেল

4
উপরের দিকে মিশেলের মন্তব্যটি কতটা গুরুত্বপূর্ণ তা যথেষ্ট চাপ দিতে পারি না: ট্রেলিং কোমা যোগ করুন এবং কিছু নিউরন সংরক্ষণ করুন। ক্যাপগুলি সম্পর্কে দুঃখিত।
অ্যালেক্স

2
আমার জন্য কাজ করে না। আমি mysql.service এর জন্য চাকরি পেয়েছি। মাইএসকিএলডি পুনরায় আরম্ভ করার চেষ্টা করার সময় বিশদগুলির জন্য 'সিস্টেমেটেক্ট স্ট্যাটাস mysql.service' এবং 'জার্নালেক্ট-এক্সএন' দেখুন এবং ত্রুটিটি ডিস্কটি পূর্ণ is এটি 500 জিবি ফ্রি স্পেস পেয়েছে ...
ফ্রাঙ্ক এইচ।

17

দ্রুত এবং করা সহজ:

# Create new directory for MySQL data
mkdir /new/dir/for/mysql

# Set ownership of new directory to match existing one
chown --reference=/var/lib/mysql /new/dir/for/mysql

# Set permissions on new directory to match existing one
chmod --reference=/var/lib/mysql /new/dir/for/mysql

# Stop MySQL before copying over files
service mysql stop

# Copy all files in default directory, to new one, retaining perms (-p)
cp -rp /var/lib/mysql/* /new/dir/for/mysql/

/etc/my.cnfফাইলটি সম্পাদনা করুন এবং [mysqld]এই লাইনটি যুক্ত করুন:

datadir=/new/dir/for/mysql/

আপনি যদি কেজএফএস ব্যবহার করছেন (ক্লাউডলিনাক্স সহ বা তার বাইরে) এবং মাইএসকিউএল ডিরেক্টরিটি পরিবর্তন করতে চান তবে আপনাকে এই ফাইলটিতে নতুন ডিরেক্টরি যুক্ত করতে হবে:

/etc/cagefs/cagefs.mp

এবং তারপরে এই কমান্ডটি চালান:

cagefsctl --remount-all

1
শুনে খুশি: পি
স্টাইলস

দুর্দান্ত ধন্যবাদ, এবং আপনি যদি এটি সম্পূর্ণরূপে স্ক্রিপ্ট করতে চান তবে আমি যুক্ত করতে চাইলে আপনি এটি ব্যবহার করতে পারেন: সেড-আই এর | ডেটাডির = / ভার / লাইব / মাইএসকিএল | ডেটাডির = / ডেটা / ভার / লিবি / মাইএসকিএল | জি '/ ইত্যাদি / my.cnf
berimbolo

এটি আমার পক্ষে কাজ করে না। আমি এটি এবং বিভিন্ন অন্যান্য বিকল্প অনেক চেষ্টা করেছি। আমি ব্যবহারকারীর মতো একই উপসংহারে আসছি 3338098 যখন সে বলে যে এটিই একমাত্র উপায় যে কাজ করে: সার্ভারফ্লাট
প্রশ্ন

@ ভলকসম্যান এই সমস্ত লিঙ্কটি বলেছে যে তাকে অপসারণ এবং পুনরায় ইনস্টল করতে হয়েছিল ... মাইএসকিউএল এবং মারিয়াডিবি উভয়ই ডাটাডির কনফিগারেশনকে সমর্থন করার কারণে আপনার উভয়ই কিছু অন্য সার্ভার নির্দিষ্ট সমস্যা রয়েছে, এবং আমি সম্প্রতি (6 মাস আগে) অন্যটিতে এটি করেছি সমস্যা ছাড়াই সার্ভার
sMyles 16

@ এস স্টাইলগুলি হ্যাঁ, এটি মুছে ফেলা এবং ইনস্টল করা হয়েছিল তবে অন্য কোথাও / var / lib / mysql মাউন্ট করার পরে অর্থাত্ একটি / বারের বিপরীতে একটি মেগা পার্টিশন স্থাপন করা হয়েছিল। আমাদের সিস্টেমগুলির সাথে যদি কোনও নির্দিষ্ট সমস্যা থাকে তবে এটি হ'ল এটি কাজ করা দুর্দান্ত। এটি Centx 7 OS এর একটি নতুন স্টক স্ট্যান্ডার্ড ইনস্টলটিতে RAID 10 সহ 8x এইচডিডি সহ ছিল তবে সাধারণত এই জাতীয় ডিস্ক অ্যারের বিশদটি সফ্টওয়্যার থেকে স্বচ্ছ are
ভলক্সম্যান

15

আপনাকে বর্তমান তথ্যটি নতুন ডিরেক্টরিতে অনুলিপি করতে হবে এবং my.cnfআপনার মাইএসকিউএল পরিবর্তন করতে হবে ।

[mysqld]
datadir=/your/new/dir/
tmpdir=/your/new/temp/

সার্ভার চলমান না থাকলে আপনাকে ডাটাবেস অনুলিপি করতে হবে ।


ভাল আমি কি করতে পারি না thats। আমি ডিরেক্টরিটি পরিবর্তন করতে চাই তবে নতুন ডিরেক্টরিতে নতুন ডাটাবেস তৈরি করতে চাই। এবং পুরানো ডিরেক্টরি এবং নতুন ডিরেক্টরি ডেটাবেস উভয়ই অ্যাক্সেস করতে চান।
মাইএসকিউএল ডিবিএ

1
@ মাইএসকিউএল ডিবিএ: আপনি যদি কিছু ln -sস্ট্যাটিক সিম্বলিক লিঙ্ক ব্যবহার করেন তবে তা কি তা তৈরি হবে না?
রাগেজেড

আচ্ছা আমি এই কমান্ডটি ব্যবহার করে কিছুটা বিভ্রান্ত হয়ে পড়েছি। আমি যেমন নতুন ডিরেক্টরিতে নতুন ডাটাবেস তৈরি করতে চাই তার আগেই আমি ব্যাখ্যা করেছি। এটি কি সিমলিংক দিয়ে সম্ভব?
মাইএসকিউএল ডিবিএ

1
আপনি একটি নতুন ডিরেক্টরি তৈরি করতে পারেন, ফাইলটি নতুন my.cnf
দিরে

2
ডাউন ভোট দিয়েছে কারণ এটি সার্ভারফল্ট
a/

14

প্রথমে আপনার মাইএসকিএল সার্ভারটি বন্ধ করা উচিত। যেমন

# /etc/init.d/mysql stop

এর পরে আপনার পুরানো ডেটা ডিরেক্টরি কপি করা উচিত (যেমন / var / lib / mysql) Incl। এর মাধ্যমে আপনার নতুন ডিরেক্টরিতে সুবিধা

# cp -R -p /var/lib/mysql /new/data/dir

এখন আপনি /etc/mysql/my.cnfনতুন তথ্য পরিবর্তন করতে পারেন এবং সার্ভার পুনরায় আরম্ভ করতে পারেন

# /etc/init.d/mysql restart

5
ডাউন ভোট দিয়েছে কারণ এটি সার্ভারসফল্ট
a/

7

যদি আমার মতো আপনি ডেবিয়ান হন এবং আপনি মাইএসকিএল দির আপনার বাড়িতে বা / হোম / ... এর দিকে যেতে চান, সমাধানটি হ'ল:

  • "Sudo সার্ভিস mysql স্টপ" দ্বারা mysql বন্ধ করুন
  • "/etc/mysql/mariadb.conf.d/50-server.cnf" এ "ডেটাডির" ভেরিয়েবলটি নতুন পথে পরিবর্তন করুন
  • / Var / lib / mysql এর ব্যাকআপ করুন: "সিপি -আর-পি / ভেরি / লিব / মাইএসকিএল / পাথ_ টো_মাই_ব্যাকআপ"
  • এই দিরটিকে মুছুন: "সুডো আরএম -আর / ভার / লিবিব / মাইএসকিএল"
  • নতুন দিরের কাছে ডেটা সরান: "সিপি -আর-পি / পাথ_টি_আমি_ব্যাকআপ / পাথ_নিউ_ডির
  • "Sudo chown -R mysql: mysql / path_new_dir" দ্বারা অ্যাক্সেস পরিবর্তন করুন
  • পরিবর্তনগুলি "প্রোটেক্টহোম" "" / "/" সিস্টেম / সিস্টেমডি / সিস্টেমে / মাইসকিএলডি। সার্ভিস "এর উপর" মিথ্যা "দ্বারা পরিবর্তন করুন
  • "Sudo systemctl ডেমন-রিলোড" দ্বারা সিস্টেমটি পুনরায় লোড করুন
  • "পরিষেবা mysql পুনঃসূচনা" দ্বারা mysql পুনরায় আরম্ভ করুন

একদিন মারিয়াডবি ডকুমেন্টেশনে আমার জন্য সমাধানটি সন্ধান করুন। আশা করি এটি কিছু লোককে সহায়তা করবে!


ফাইল /etc/systemd/system/mysqld.service এখানে নেই। আমি কোথায় খুঁজছি কোন ধারণা?
রন পিগগট

1
ব্যবহার করছেন তাদের জন্য MariaDB সেবা ফাইল এ অবস্থিত /lib/systemd/system/mariadb@.service
রন Piggott

5

আমি আমার মেশিনে একটি ডাটাবেস রাখতে চেয়েছিলাম, তবে আমার বাহ্যিক হার্ড ড্রাইভেও একটি ডেটা রয়েছে এবং দুটি ব্যবহারের মধ্যে স্যুইচ করতে চাই।

আপনি যদি কোনও ম্যাক এ থাকেন এবং হোমব্রিউ ব্যবহার করে মাইএসকিউএল ইনস্টল করেছেন তবে এটি আপনার পক্ষে কাজ করা উচিত। অন্যথায়, আপনার কেবলমাত্র datadirআপনার মেশিনে মাইএসকিউএল-এর জন্য উপযুক্ত স্থানগুলি প্রয়োগ করতে হবে।

#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

তারপরে আপনি কখন ফিরে যেতে চান তা কেবল করুন:

mv mysql mysql.remote

mv mysql.local mysql

এবং আপনি আবার আপনার স্থানীয় ডাটাবেস ব্যবহার করছেন। আশা করি এইটি কাজ করবে.


1
এটি ঠিক যেমনটি বলা হয়েছে ঠিক তেমন প্রশ্নের সমাধান করছে না - তবে এটি আমি ঠিক যা খুঁজছিলাম - এবং এটি একটি প্রান্তের কেস / বাগ পরিচালনা করার একটি ঝরঝরে উপায় যা my.cnf স্পেসগুলি ভালভাবে পরিচালনা করে না: বাগস.মাইসকিএল.কম /bug.php?id=26033 । আমি এই বাগ রিপোর্টটির সাথে এই কাজের সংযোগটি করব link
গ্যাবে

ডাউন ভোট দিয়েছে কারণ এটি সার্ভারসফল্ট
a/

5

প্রথমে বন্ধ করুন mysqld

mysql_install_db --user=mysql \
                 --basedir=/opt/mysql/mysql \
                 --datadir=/opt/mysql/mysql/data

তারপরে আপনার /etc/mysql/my.cnf
স্টার্ট মাইএসকিএলডে ডেটাডির পরিবর্তন করুন

দ্রষ্টব্য:
# 1: সম্ভবত আপনাকে নিজের সেলিনাক্স সেটিংস সামঞ্জস্য করতে হবে (ঝামেলার ক্ষেত্রে অক্ষম সেলইনাক্স দিয়ে চেষ্টা করে দেখুন), অ্যাপারমার (উবুন্টু) সমস্যাও হতে পারে।

# 2: মাইএসকিউএল ইনস্টল ডিবি রেফারেন্স দেখুন


4

প্রথমে আপনার মাইএসকিএল বন্ধ করুন

sudo service mysql stop

নতুন জায়গায় মাইএসকিএল ডেটা অনুলিপি করুন।

sudo cp -rp /var/lib/mysql /yourdirectory/

যদি আপনি অ্যাপারমার ব্যবহার করেন তবে নীচের ফাইলটি সম্পাদনা করুন এবং নিম্নলিখিতটি করুন

sudo vim /etc/apparmor.d/usr.sbin.mysqld

যেখানে / var / lib / by / yourdirectory / প্রতিস্থাপন করুন / তারপরে ফাইলটিতে উপস্থিত না থাকলে follwoing যুক্ত করুন

    /yourdirectory/mysql/ r,
    /yourdirectory/mysql/** rwk,

কমান্ড দিয়ে ফাইলটি সংরক্ষণ করুন

:wq

My.cnf ফাইলটি সম্পাদনা করুন

sudo vim /etc/mysql/my.cnf

/ Var / lib / by / yourdirectory / এর পরিবর্তে কমান্ডের সাহায্যে সংরক্ষণ করুন

:wq

অবশেষে মাইএসকিএল শুরু করুন

sudo service mysql start

raid0 সম্পর্কে আরো @see, অপ্টিমাইজেশান ICI


ডাউন ভোট দিয়েছে কারণ এটি সার্ভারফল্ট
২95৯৫৫৩

সম্ভবত এটি অন্যান্য বিতরণের জন্য কাজ করে না, তবে আপনি যদি উবুন্টু ব্যবহার করেন তবে এটি আমার পক্ষে ভাল কাজ করে এবং আমি প্রতিটি নতুন ইনস্টলড উবুন্টু সার্ভারের জন্য রাইড0 সক্ষম করতে পথ পরিবর্তন করি।
নাদ্দেম

2
আমি জানি লোকেরা এটিকে নিম্নচাষ করছে, তবে আমি আপনাকে বলতে চাই যে এটি আমার দিনকে বাঁচিয়েছিল। ধন্যবাদ!
ড্যানিয়েল লোরেইরো

3

এই সমাধানটি ওয়ার্কবেঞ্চ ব্যবহার করে উইন্ডোজ 7 এ কাজ করে। এটি করার জন্য আপনার প্রশাসকের অধিকারের প্রয়োজন হবে। আপনি যেখানেই আপনার ডেটা সংরক্ষণ করতে চান সেখানে এটি একটি সংযোগ তৈরি করে (একটি শর্টকাটের মতো)

ওয়ার্কবেঞ্চ খুলুন এবং ইনস্ট্যান্স নির্বাচন করুন - স্টার্টআপ / শাটডাউন সার্ভারটি বন্ধ করুন

Https://bitum.com/junctionmaster.php থেকে জংশন মাস্টার ইনস্টল করুন

সি তে নেভিগেট করুন: \ প্রোগ্রামডাটা \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার 5.6

ডেটাতে রাইট ক্লিক করুন এবং "মুভ করুন এবং তারপরে LINK ফোল্ডারটি ..." নির্বাচন করুন "" उद्धিত এবং আপনার নতুন ডেটা ডিরেক্টরি এখানে "উদ্ধৃতি এবং লিঙ্কে ক্লিক করুন" তে সতর্কতা পয়েন্ট গন্তব্যটি গ্রহণ করুন

এখন "আপনার নতুন তথ্য ডিরেক্টরি এখানে কোট ছাড়াই" যান

সুরক্ষা ট্যাবে ডান ক্লিক করুন সম্পাদনা ক্লিক করুন প্রকারের নেটওয়ার্ক পরিষেবা যুক্ত করুন ক্লিক করুন তারপরে নামগুলি চেক করুন ঠিক আছে ক্লিক করুন পূর্ণ নিয়ন্ত্রণের অনুমতি দিন চেকবক্স এবং তারপরে ঠিক আছে ক্লিক করুন

ওয়ার্কবেঞ্চে ফিরে যান এবং সার্ভারটি শুরু করুন

এই পদ্ধতিটি উইন্ডোজ 7 এন্টারপ্রাইজে মাইএসকিউএল ওয়ার্কবেঞ্চ 6.2 ব্যবহার করে আমার পক্ষে কাজ করেছিল।


2

@ ব্যবহারকারী 1341296 হিসাবে সমস্ত কিছু বলেছে, আরও ...

আপনি পরিবর্তন না করাই ভাল আপনি /etc/mysql/my.cnf পরিবর্তে নতুন ফাইল তৈরি করতে চান /etc/mysql/conf.d/ext.cnf(কোনও নাম, তবে এক্সটেনশন হওয়া উচিত cnf)

এবং এটি আপনার পরিবর্তন লিখুন:

[mysqld]
datadir=/vagrant/mq/mysql

এভাবে

  • আপনার বিদ্যমান ফাইলটি পরিবর্তন করার দরকার নেই (অটোমেশন স্ক্রিপ্টগুলির জন্য সহজ)
  • মাইএসকিউএল সংস্করণ (এবং এটির কনফিগারেশন!) আপডেটে কোনও সমস্যা নেই।

2

আপনি যদি উইন্ডোজ ব্যবহারকারী হন এবং লিনাক্স ব্যবহারকারীদের জন্য সমস্ত উত্তর রয়েছে তা জানতে এখানে অবতরণ করেছেন, হতাশ হবেন না! আমি তোমার মতো সময়কে নষ্ট করতে দেব না।

সমাধানের আগে কিছুটা বুলশিট কথা:

মাইএসকিউএল আপনার তৈরি করা বিভিন্ন ডাটাবেসের ডেটা সঞ্চয় করতে একটি ডেটা ডিরেক্টরি ব্যবহার করে। ঠিক আছে, শেষ পর্যন্ত, এটি অ্যাপ্লিকেশনটিতে কিছু যুক্ত কৌতুক সহ ফাইলগুলির আকারে সেগুলি সংরক্ষণ করতে হবে এবং ডাটাবেস ক্লাসে আপনি যে ডেটাবেস ক্লাসে শিখেছিলেন সেগুলি নিশ্চিত করার জন্য ফাইল ফর্ম্যাটটি সংরক্ষণ করতে হবে।

এখন আপনি নিশ্চিত করতে চান যে ভবিষ্যতে আপনি তৈরি করতে পারেন এমন বড় ডেটাবেস সংরক্ষণের জন্য পর্যাপ্ত জায়গা রয়েছে এবং তাই আপনি ভেবেছিলেন, আরে! আমি এটিকে অন্য ড্রাইভে রাখতে চাই যা আরও বেশি জায়গা পেয়েছে।

সুতরাং আপনি নিম্নলিখিত করতে।

পদক্ষেপ - 1 : মাইএসকিউএল পরিষেবা বন্ধ করা হচ্ছে।

  Window Key + R - will open Run
  servies.msc    - will open services manager
  Locate MySQL80 (80 is for version 8.0, look for the one you've).
  Stop it.       (Right click, Stop)

পদক্ষেপ - 2 : বর্তমান তথ্য ডিরেক্টরিটি সন্ধান করা

 Goto C:\ProgramData\MySQL\MySQL Server 8.0

ডিফল্টরূপে, এখানে নামের একটি ফোল্ডার থাকা উচিত Data, এটি মাইএসকিউএল দ্বারা ডিফল্ট সেটিংসে ব্যবহৃত হয় (তবে তারা অন্য কোনও ভাল অবস্থান না পেয়ে থাকে) তবে এটি পরীক্ষা করা যাক।

my.iniফাইল সন্ধান করুন, ঠিক সেখানে থাকা উচিত।

এডিটরটিতে এটি খুলুন (নোটপ্যাড ++ সম্ভবত)।

datadirফাইলটিতে সন্ধানের জন্য একটি সিটিআরএল + এফ করুন।

এখানে যা উল্লেখ করা হয়েছে তা হ'ল মাইএসকিউএল বর্তমানে তথ্য ডিরেক্টরিতে ব্যবহারের জন্য আসল অবস্থান location এই আপনি পরিবর্তন করতে চান।

পদক্ষেপ - 3 : এটি একটি নতুন ডেটা ডিরেক্টরিতে প্রতিস্থাপন করা হচ্ছে।

ধরা যাক আপনি চান আপনার নতুন ডেটা ডিরেক্টরিটি ডাব্লু: __ মাইএসকিউএল_ডাটা হয়। আসুন পরিবর্তন datadirমান my.iniএই মানে ফাইল। পূর্ববর্তী মানটি মন্তব্য করুন যাতে আপনার এটি মনে রাখতে না হয়।

 # Path to the database root
 # datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
   datadir=W:/__MySQL_Data

Now ব্যবহার xcopyডিফল্ট কপি করতে datadirকরতে W:\। কমান্ড প্রম্পট চালু করুন (উইন্ডো + আর, সেন্টিমিটার, প্রবেশ করুন)

 >> xcopy "\C:\ProgramData\MySQL\MySQL Server 8.0" "W:\" /E /H /K /O /X

এবং অনুলিপি করা ফোল্ডারটির নতুন নাম পরিবর্তন করুন datadirযা আপনি পরিবর্তন করেছেন। এখানে:W:/__MySQL_Data

কেন কেবল অনুলিপি করবেন না? ঠিক আছে কারণ এটি MySQL80কओল নয়! এটি আপনাকে অনুলিপি করা ফোল্ডারে অনুমতিগুলি হারাতে সহায়তা করে, যাতে আপনি যখন পুনরায় চালু করবেন তখন এটি একটি মূর্খ ত্রুটি দেবে না: "লোকাল কম্পিউটারে মাইএসকিউএল 80 পরিষেবাটি শুরু হয়েছিল এবং তারপরে বন্ধ হয়ে গেছে। কিছু পরিষেবা স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় যদি তারা অন্যান্য পরিষেবা বা প্রোগ্রাম দ্বারা ব্যবহৃত হয় না। " - সৌজন্যে: মাইক্রোসফ্ট

পদক্ষেপ - 4 : পরিষেবাটি পুনরায় চালু করা

 Well, go back to the Services Manager to Start again, 
 "MySQL80" that you stopped, to restart it again.

পদক্ষেপ - 5 : সম্পন্ন! এখন কাজে ফিরে এসো !!


1
ধন্যবাদ যে সহায়ক ছিল তবে সতর্কতা ছিল: আপনি যদি তার অনুমতি পরিবর্তন না করেন তবে my.ini সাধারণ ব্যবহারকারীর দ্বারা লিখিত হয় না। ওহ এবং প্রোগ্রামডেটা হ'ল লুকানো ফোল্ডার তাই এটি দেখার জন্য আপনাকে এক্সপ্লোরার ফোল্ডার সেটিংস পরিবর্তন করতে হবে।
জনপি

1

বাক্স থেকে বাক্সে সরানো, মেশিনগুলি আপগ্রেড করার সময় আমার প্রায়শই এটি করা প্রয়োজন। আরও ভাল অবস্থানে / var / lib / mysql স্থানান্তরিত করার পাশাপাশি, আমার প্রায়শই পুরানো মাইএসকিউএল ইনস্টলেশন থেকে পুরানো ডিবি টেবিলগুলি পুনরুদ্ধার করা প্রয়োজন। এই কাজ করার জন্য...

  1. বন্ধ করুন mysql। উপরের নির্দেশগুলি অনুসরণ করুন, এটি প্রয়োজনীয়।
  2. ডাটাবেস ডিরেক্টরিগুলি অনুলিপি করুন - আপনার পুরানো ইনস্টলেশনের প্রতিটি ডাটাবেসের জন্য একটি থাকবে - নতুন DATADIR লোকেশনে। তবে "মাইকিকিএল" এবং "পারফরম্যান্স_স্কেমা" ডিরেক্টরিগুলি বাদ দিন।
  3. অনুলিপি করা ডাটাবেস ডিরেক্টরিগুলির মধ্যে সঠিক অনুমতি। মালিকানাটি মাইএসকিএল হওয়া উচিত: মাইএসকিএল, ডিরেক্টরিগুলি 700 হওয়া উচিত এবং ফাইলগুলি 660 হওয়া উচিত।
  4. মাইএসকিএল পুনরায় চালু করুন। আপনার ইনস্টলেশন উপর নির্ভর করে, পুরানো সংস্করণ DB ফাইল আপডেট করা উচিত।

ডাউন ভোটের জন্য দুঃখিত, এই সমাধানটি সঠিক হতে পারে, এটি চেষ্টা করে দেখেনি।
ব্যবহারকারী 3338098

1

আমাদের মাইএসকিউএলটিকে /homeডিরেক্টরিতে স্থানান্তরিত করতে হয়েছিল কারণ এটি অন্য শারীরিক ডিস্ক থেকে ম্যাপ করা হয়েছিল। লাইভ সহজ করার জন্য, my.cnf ডিরেক্টরি পরিবর্তন না করে আমরা /home/mysqlমূল ডিরেক্টরিটির জায়গায় নতুন ডিরেক্টরিটি ম্যাপ করেছি /var/lib/mysql। এটি আমাদের জন্য একটি কবজির মতো কাজ করে (সেন্টস 7.১ এ পরীক্ষিত)।

নতুন দির তৈরি করুন এবং সঠিক অনুমতি সেট করুন।

mkdir -p /home/mysql
chmod 755 /home/mysql
chown mysql:mysql /home/mysql

চলমান থাকলে মাইএসকিউএল বন্ধ করুন।

systemctl stop mysql

তথ্য সরাতে স্যার।

mv -f /var/lib/mysql/* /home/mysql

স্থায়ী মাউন্ট তৈরি করুন এবং এটি সম্পাদন করুন।

echo "/home/mysql /var/lib/mysql none    bind   0 0" >> /etc/fstab
mount -a

সার্ভারটি পুনরায় চালু করুন।

systemctl start mysql

1

আপনি যদি এই প্রোগ্রামটিমেটিকভাবে করতে চান (gedit সহ কোনও ম্যানুয়াল পাঠ্য এন্ট্রি নেই) উপরে ব্যবহারকারী 1341296 এর উত্তরের উপর ভিত্তি করে ডকফেরাইলের একটি সংস্করণ এখানে রয়েছে:

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

ডকার হাবে এখানে উপলভ্য: https://hub.docker.com/r/richardjecooke/ruby-mysql-in-memory/


0

প্রথমে আপনার জানা উচিত আপনার কনফিগারেশন ফাইলটি কোথায়? আপনার কনফিগারেশন ফাইলটি কোথায়?

আপনি যদি অ্যাপটি-গেট বা ইয়ম ইনস্টল করে ইনস্টল করেন。

কনফিগারেশন ফাইল উপস্থিত হতে পারে

/etc/mysql/my.cnf

তথ্য ফাইল উপস্থিত হতে পারে

/ Var / lib / MySQL

এবং আপনার যা করা উচিত তা হ'ল

  1. বন্ধ করুন mysql
  2. মাইএসকিএল ডেটা নতুন ডিরেক্টরিতে পরিবর্তন করুন
  3. কনফিগার ফাইল পরিবর্তন করুন
  4. কনফিগারেশন ফাইলটি পুনরায় লোড করুন
  5. মাইএসকিএল পুনরায় আরম্ভ করুন

এবং তারপরে কাজ শেষ।

তবে যদি আপনি এটি অ্যাপটি বা ইয়ম দিয়ে ইনস্টল না করে থাকেন তবে ডাইরেক্টরিটি এটি পছন্দ করতে পারে না এবং আপনি এর সাথে মাইএসকিএল ফাইলগুলি সন্ধান করতে পারেন

মাইএসকিএল


ডাউন ভোট দিয়েছে কারণ এটি সার্ভারফল্ট
২95৯৫৫৩

0

সুএসই ১৩.১ এর অধীনে, এটি মাইএসকিএল ডেটা ডিরেক্টরিকে অন্য কোথাও স্থানান্তর করতে, যেমন: / home / উদাহরণ_user / এবং আরও তথ্যপূর্ণ নাম দেওয়ার জন্য কাজ করে:

ইন / ভার / লিব /:

# mv -T mysql /home/example_user/mysql_datadir
# ln -s /home/example_user/mysql_datadir ./mysql

আমি মাইএসকিএল পুনরায় চালু করেছি:

# systemctl restart mysql.service

তবে সন্দেহ করুন যে এটিও প্রয়োজনীয় ছিল না।


0

পরিবেশের একটির জন্য আমি মাইএসকিএল ডেটা ডিরেক্টরিটি নতুন জায়গায় পরিবর্তন করেছি তবে মাইএসকিএল সার্ভার পুনরায় চালু করার সময় এটি সময় নিচ্ছিল। সুতরাং আমি বন্দরটি পরীক্ষা করে দেখলাম যে অন্য প্রক্রিয়াটি মাইএসকিএল বন্দরে শুনছিল। তাই আমি প্রক্রিয়াটি মেরে ফেলেছি এবং মাইএসকিএল সার্ভারটি পুনরায় শুরু করেছি এবং এটি ভালভাবে কাজ করেছে।

আমি ডেটা ডিরেক্টরি পরিবর্তন করার জন্য নীচের পদক্ষেপগুলি অনুসরণ করেছি যা দুর্দান্ত কাজ করেছে। লিনাক্সে mysql ডেটা ডিরেক্টরি পরিবর্তন করুন


স্ট্যাক ওভারফ্লোতে স্বাগতম! যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
টিম ডাইকম্যান

0

উপরের পদক্ষেপগুলি ভিত্তি এবং মৌলিক। আমি তাদের অনুসরণ করেছিলাম এবং এখনও "মাইএসকিএল শুরু করতে ব্যর্থ হয়েছে" এর ত্রুটি পেয়েছি।

নতুন ফোল্ডারটি মাইএসকিএল ডেটা সঞ্চয় করার জন্য আপনাকে ফোল্ডারে অনুমতি এবং মালিকানা মাইএসকিএল: মাইএসকিএল রয়েছে তা নিশ্চিত করতে হবে।

এর পাশেই, মাইএসকিএল-র মূল ডিরেক্টরিটির অনুমতি এবং মালিকানা পরীক্ষা করতে হবে, যদি বলুন, / ডেটা / মাইএসকিএল / থাকে। এখানে / ডেটা / ডিরেক্টরিটি মূল: মূল হতে হবে। আমি / মাইএসকিএল এর পিতামাতার ডিরেক্টরিতে মালিকানা পরিবর্তন করার পরে "মাইএসকিএল শুরু করতে ব্যর্থ হয়েছে" এর ত্রুটিটি ঠিক করেছি। আমার ভিএম এর ওএসটি হ'ল RHEL 7.6।


আমি সেলিনাক্স = এসিলিনাক্স = প্রিভিসিতের জন্য প্রয়োগ করে, আমার জন্য কাজ করি নি, আরএইচইএলএলএসে সেলিনাক্স চেষ্টা করেছি।
ব্যবহারকারী 3325137 উইলিয়াম

0

এটি ডেটাডিরকে সিমলিংক করাও সম্ভব। কমপক্ষে ম্যাকোস, দেব পরিবেশে।

(homebrew) যেমন

# 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

মাইএসকিএল পুনরায় চালু করুন।


-1

আপনি যদি এসই লিনাক্স ব্যবহার করে থাকেন তবে এটিকে / ইত্যাদি / সেলিনাক্স / কনফিগারেশন সম্পাদনা করে এবং SELINUX = প্রযোজ্যভাবে সেলিনাক্স = অনুমতিযুক্ত করে অনুমতি মোডে সেট করুন


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.