Siêu người dùng có một hướng dẫn từng bước tốt đẹp về cách giải quyết vấn đề này
Đây là một bộ hướng dẫn khác để làm điều tương tự
http://www.ubuntugeek.com/how-to-change-the-mysql-data-default-directory.html
Ở đây nó được đăng lại. Đi và bỏ phiếu ban đầu nếu bạn có thể trên siêu người dùng.
Sau một số nhầm lẫn chung về quyền, tôi nhận ra rằng vấn đề không phải là tôi không có quyền và đường dẫn của mình mà là AppArmor đã ngăn mysql đọc và ghi vào vị trí mới.
Đây là giải pháp của tôi:
Trước tiên hãy dừng MySQL để không có gì lạ xảy ra trong khi bạn đang loay hoay:
$ sudo stop mysql
Sau đó di chuyển tất cả các thư mục cơ sở dữ liệu đến nhà mới của họ:
$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/
Đừng di chuyển các tệp, chúng sẽ được tạo bởi mysql, chỉ cần di chuyển các thư mục (là cơ sở dữ liệu).
Sau đó, lịch sự yêu cầu AppArmor cho phép mysql sử dụng thư mục mới:
$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
thêm dòng:
/new-mysql-dir/ r,
/new-mysql-dir/** rwk,
Sau đó nói với mysql rằng datadir đã di chuyển:
$ sudo vim /etc/mysql/my.cnf
thay đổi dòng:
datadir=/var/lib/mysql
đến:
datadir=/my-new-db-dir/
LƯU Ý: Tùy thuộc vào thiết lập cơ sở dữ liệu của bạn, bạn có thể cần phải thay đổi innodb-data-home-dir, v.v.
Sau đó khởi động lại AppArmor để đọc cài đặt mới:
$ sudo /etc/init.d/apparmor restart
Và khởi động lại MySQL bằng cách sử dụng datadir mới:
$ sudo start mysql
Hi vọng điêu nay co ich!