我正在尝试将我的Raspberry Pi中的MySQL数据库重新定位到外部硬盘驱动器,这样我就可以保留更大的数据库。 我对此知之甚少,所以如果这个问题太简单,我会道歉,但这是我到目前为止采取的步骤,正如RPi forum所建议的那样:
$ sudo /etc/init.d/mysql stop
$ sudo mkdir /path/to/new/datadir
$ sudo cp -R /var/lib/mysql/mysql /path/to/new/datadir
$ sudo nano /etc/mysql/my.cnf
datadir = /path/to/new/datadir
$ sudo chown -R mysql:mysql /path/to/new/datadir
$ sudo /etc/init.d/mysql start
不幸的是,现在我在尝试执行最后一行时遇到错误(如上所示):
$ sudo /etc/init.d/mysql start
当我尝试执行最后一行时,收到以下消息:
[...] Starting mysql (via systemctl): mysql.serviceJob for mysql.service failed.
See 'systemctl status mysql.service' and 'journalctl -xn' for details. failed!
我检查了journalctl -xn
并被告知:No journal files were found
。
systemctl status mysql.service
产生了以下错误:
mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql)
Active: failed(Result: exit-code) since Sun 2017-02-26 22:15:08 ET; 4 min 4 sec ago
Process: 12923 ExecStop=/etc/init.d.mysql stop (code=exited, status=0/SUCCESS)
Process: 14171 ExecStart=/etc/init.d.mysql start (code=exited, status=1/FAILURE)
附加信息:我移动了活动目录的文件路径中有一个空格,没有用引号括起来。如果我在它周围加上引号,我会在Process 13627
处失败。
如果您有任何建议,请告诉我 - 谢谢!
答案 0 :(得分:1)
检查复制的datadir文件夹的所有权。确保它归mysql用户和组所有。
使用命令:
ls -lah /path/to/copieddir
它应该是这样的:
drwxr-xr-x 7 mysql mysql 4.0K Mar 8 15:28 .
drwxr-xr-x 50 root root 4.0K Jan 20 14:50 ..
drwx------ 2 mysql mysql 4.0K Nov 1 15:36 mysql
drwx------ 2 mysql mysql 4.0K Nov 1 15:36 performance_schema
如果你看到这个:
drwxr-xr-x 7 user user 4.0K Mar 8 15:28 .
drwxr-xr-x 50 root root 4.0K Jan 20 14:50 ..
drwx------ 2 user user 4.0K Nov 1 15:36 mysql
drwx------ 2 user user 4.0K Nov 1 15:36 performance_schema
运行此命令:
sudo chown -R mysql:mysql /path/to/copieddir
答案 1 :(得分:0)
将ls与长开关(-l)一起使用以显示文件/文件夹权限:
ls -l /path/to/new/
尝试' man ls'有关ls命令和更多内容的更多详细信息,chmod和or chown也会引起关注。
哦和Unix文件权限 - https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions