我对Mysql/数据库的东西很陌生,我现在已经没有什么想法了。此外,我也是一个完全的MAC noob(我昨天在Win 11机器上做了同样的事情,在那里它像网上描述的那样工作,通过在权限列表中添加“网络服务”)。
我的问题很容易描述:我在系统设置中更改了“MySQL”下的datadir文件夹。当我试图启动服务器(从系统设置)时,它不会启动。
我发现在线(在这个论坛),我必须授予权限的新文件夹.我这样做使用sudo chown -R _mysql path/of/my/new/data/folder
sudo chgrp -R _mysql path/of/my/new/data/folder
这两个命令似乎都可以工作,因为当我检查文件夹信息时,路径/of/my/new/data/folder具有_mysql权限。
问题是,它不工作。更改回旧的datadir,它再次工作。我还测试了/another/new/data/folder(不同的文件夹)的不同路径。我的结论是,它与文件夹有关。然而,通常在线指导(至少我能理解)到此为止,因为在这一点上,它通常适用于人们。
希望这里有人有我可以尝试的想法。
最好的问候,T. E。
我试探着:
我在网上发现(在这个论坛),我必须授予新文件夹的权限。我用sudo chown -R _mysql path/of/my/new/data/folder
sudo chgrp -R _mysql path/of/my/new/data/folder
做到了这一点
这两个命令似乎都可以工作,因为当我检查文件夹信息时,路径/of/my/new/data/folder具有_mysql权限。
我期待着:一些小提示,在哪里看,如何找到问题。
编辑
因为我不想回答我的问题,因为它看起来像一个解决方案,我编辑了它。我已经得到了一些关于这个问题的回复作为评论。这些是比尔·卡文的前三个评论。
我试着按照these instructions在我的MAC上初始化一个数据库。一步一步:
1.转到目录cd usr/local/mysql
1.我在那里创建了mysql-files文件夹(以前不存在,所以我认为这不是真正需要的),并给它权限sudo chown mysql:mysql mysql-files
和sudo chmod 750 mysql-files
,只是为了执行与说明中完全相同的步骤
1.尝试初始化数据目录与sudo bin/mysqld --initialize --user=mysql
->错误:mysqld: Can't create directory '/usr/local/mysql-8.2.0-macos13-x86_64/data/' (OS errno 17 - File exists)
1.删除了“data”文件夹,这样我就可以再次使用sudo bin/mysqld --initialize --user=mysql
-> worked重新开始初始化(注意,没有sudo
,我得到了Permission denied
)
1.转到我希望datadir为cd my/own/path
的目录(更改了此处的路径)
1.在这里创建mysql文件夹sudo mkdir mysql
1.授予权限sudo chown mysql:mysql mysql
和sudo chmod 750 mysql
1.返回mysql安装目录cd usr/local/mysql
1.使用sudo bin/mysqld --initialize --user=mysql --basedir=/my/own/path/mysql --datadir=/my/own/path/mysql/data
初始化数据库
1.得到错误,见下文
2023-11-05T12:21:50.544687Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2023-11-05T12:21:50.546782Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.2.0-macos13-x86_64/bin/mysqld (mysqld 8.2.0) initializing of server in progress as process 898
2023-11-05T12:21:50.546830Z 0 [ERROR] [MY-010338] [Server] Cant find error-message file '/my/own/path/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2023-11-05T12:21:50.548153Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /my/own/path/mysql/data/ is case insensitive
2023-11-05T12:21:50.550008Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to '/my/own/path/mysql/data/' (OS errno: 13 - Permission denied)
2023-11-05T12:21:50.550019Z 0 [ERROR] [MY-013236] [Server] The designated data directory /my/own/path/mysql/data/ is unusable. You can remove all files that the server added to it.
2023-11-05T12:21:50.550085Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-11-05T12:21:50.550260Z 0 [System] [MY-010910] [Server] /usr/local/mysql-8.2.0-macos13-x86_64/bin/mysqld: Shutdown complete (mysqld 8.2.0) MySQL Community Server - GPL.
2023-11-05T12:21:50.550554Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
字符串
在这一点上,我真的不知道如何继续,因为这是,至少对我来说,正是指令要求我做的。也许有人可以从错误消息中看到发生了什么,或者其他人在过去有这个问题?
提前谢谢你,最好的问候,T. E。
1条答案
按热度按时间7vux5j2d1#
我自我回答我的问题,使最终的状态可见的用户谷歌的问题,并找到这个线程。
我找不到在两个开发环境中正确设置MySQL数据库的方法(Win 11-PC和MacBook Pro)并使其工作。最初的计划是将
datadir
放在云文件夹中,并将两个环境上的datadir
更改为该文件夹,以便两个环境共享相同的数据库。在我的MacBook上,数据库不接受新的datadir
。重新初始化数据库也没有成功。我试图更改为MongoDB,这导致Win 11 Server在我将MongoDB的数据目录更改为云文件夹时崩溃。
最终,我决定使用一个简单的SQLite数据库文件,它不需要服务器。这对我来说很有效,因为我的应用程序不会收集大量数据,并且只需复制一个文件就可以轻松地重新定位数据库。
感谢比尔·卡文的回答和帮助。
最好的问候,TE