操作系统: Ubuntu 18.04
MySQL版本:用于x86_64上的Linux的版本8.0.19 (MySQL社区服务器- GPL)
我的系统是这样设置的: Ubuntu运行在一个128 1TB的固态硬盘上,另有一个1TB的固态硬盘用于存储。该系统采用Windows10专业版和Ubuntu 18.04双引导。存储驱动器是NTFS格式的。
我想把MySQL数据目录移到存储驱动器上,因为我的操作系统驱动器不够大。我一直在遵循这个网址上的教程:https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04
在本教程中,我已经讲到了“步骤4-重新启动MySQL”。到目前为止,我已经把所有东西都写成了T,没有漏掉逗号、斜杠等等。所有的事情都是按照描述的那样完成的(我已经检查了无数次以确保这是真的)
当我输入终端命令时
sudo systemctl start mysql
我得到了以下输出
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.
在此输出之后,我在终端中输入以下命令
systemctl status mysql.service
并接收以下输出
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2020-03-31 22:36:46 CDT; 38s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 7368 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
Process: 7316 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 7368 (code=exited, status=1/FAILURE)
Status: "Server startup in progress"
Error: 13 (Permission denied)
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.436713Z 0 [Warning] [MY-010091] [Server] Can't create test file /media/user/storage/mysql_datadir/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.436796Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 7368
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.439912Z 0 [Warning] [MY-010091] [Server] Can't create test file /media/user/storage/mysql_datadir/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.439923Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /media/user/storage/mysql_datadir/mysql/ is case insensitive
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.439961Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to '/media/user/storage/mysql_datadir/mysql/' (OS errno: 13 - Permission denied)
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.440049Z 0 [ERROR] [MY-010119] [Server] Aborting
Mar 31 22:36:46 user-desktop mysqld[7368]: 2020-04-01T03:36:46.440146Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.19) MySQL Community Server - GPL.
Mar 31 22:36:46 user-desktop systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
Mar 31 22:36:46 user-desktop systemd[1]: mysql.service: Failed with result 'exit-code'.
Mar 31 22:36:46 user-desktop systemd[1]: Failed to start MySQL Community Server.
看到这是一个权限错误(在将原始目录复制到新驱动器时,应该使用-av标签来避免这种错误),我输入了以下命令,以便为整个驱动器提供打开权限。
sudo chmod a+rwx /media/user/storage/
检查我输入的权限
ls -ls /media/user/storage/mysql_datadir
带输出
total 12
12 drwxrwxrwx 1 root root 12288 Mar 31 02:45 mysql
我还确保新数据目录的完整文件路径是小写的,以避免两个文件系统之间的冲突。
我仍然无法启动MySQL。如果能帮上忙我会很感激的。提前谢谢你。
编辑:
namei -mo /media/user/storage/mysql_datadir
f: /media/user/storage/mysql_datadir
drwxr-xr-x root root /
drwxr-xr-x root root media
drwxr-x--- root root user
drwxrwxrwx root root storage
drwxrwxrwx root root mysql_datadir
发布于 2020-04-01 07:00:09
根据你的帖子,你似乎有权限问题,以及“数据目录”的所有者必须始终是mysql。
如果mysql服务正在运行,请停止它。
考虑下面的示例: my.cnf看起来:
#
# Original path change to avoid space issue on server
#
datadir=/var/lib/mysql
现在,在my.cnf文件中更改此数据目录,如下所示:
#
# Original path change to avoid space issue on server
#
#datadir=/var/lib/mysql
datadir=/media/user/storage/mysql_datadir
在此之后,检查权限:
cd /media/user/storage/mysql_datadir
ls -al
输出:
drwxr-x--x 40 mysql mysql 4096 Mar 27 00:01 mysql
如果这不是输出,则执行以下命令:
chmod -Rf 0751 /媒体/用户/存储/mysql_datadir
chown -Rf mysql:mysql /media/user/storage/mysql_datadir
最后,现在启动您的mysql服务。
发布于 2020-12-22 22:08:00
我遇到了与Pratik相同的问题/解决方案,在按照说明在
/etc/mysql/mysql.conf.d/mysqld.conf和/etc/parapmor.d/usr.sbin.mysqld
我修改了fstab以挂载到
/mnt
而不是
/media/用户名
并且mysql启动时没有任何错误。除了mysql目录之外,没有其他要设置的权限。我的问题是在Ubuntu18.04上的,一定是/media挂载点有什么特别的地方
https://stackoverflow.com/questions/60963415
复制相似问题