我正在关注本教程:
到目前为止,我安装了mysql-server mysql-client libmysqlclient-dev,我想告诉 MySQL 创建它的数据库目录结构,它将使用sudo mysql_install_db
.
$ sudo mysql_install_db
[WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
[ERROR] The data directory needs to be specified.
我认为跑步mysqld --initialize
可以解决问题:
$ mysqld --initialize
mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists)
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
[ERROR] Aborting
我如何告诉 MySQL 创建它的数据库目录结构来存储它的信息?
我设法使用先前回答的问题“ 如何在 Ubuntu 16.04 上安装 mysql”解决了该问题,但我需要修改该解决方案以适合我。
当我删除/移动
/var/lib/mysql
目录时,mysqld --initialize
无法创建我想要替换的数据库目录/var/lib/mysql
,Errcode: 13 - Permission denied
即使我在它前面加上sudo
.我删除/移动了 的内容
/var/lib/mysql/
,但没有删除目录本身。我再次尝试运行sudo mysql --initialize
,它成功了,并在/var/lib/mysql/
目录中创建了新内容。产生的mysql --initialize
内容与我之前删除/移动的内容不同。我继续本教程中的其余步骤,并且工作得很好。
PS我需要用来
sudo -i
访问/var/lib/mysql
。这是您问题的完整解决方案。
根据fromdual,建议只是遵循错误的建议。某些功能已被弃用。
您可以在以下位置找到该
my.cnf
文件,并且按此顺序,这些值会相互覆盖:您还可以通过以下方式找到您的文件
我在 /etc/mysql/my.cnf 中添加了以下内容
现在试试
没有时间戳的东西我得到了一个减少的错误
这个好吗?不确定,所以我看起来更深入。根据上面接受的堆栈答案,您需要
这仍然给了我完全相同的错误。没变!
我不确定上述接受的答案是否有助于删除
/var/lib/mysql
,但sudo
有助于:工作......完全没有错误!