mysql - 找不到有效的数据目录。 MySQL通用二进制安装

标签 mysql mysqladministrator

我要在 linux 服务器上安装 mysql。但我没有对该服务器的根访问权限。所以我创建了两个名为 mysql 和 mysqldata 的文件夹。 mysql 文件夹存放二进制文件。 mysqldata 文件夹保存数据和日志。

我的.cnf

[mysqld]
user                    = mysql
port                    = 3306
bind-address            = localhost
basedir                 = /home/nwn/mysql/mysql-8.0
socket                  = /home/nwn/mysqldata/instA/socket/mysql.sock
datadir                 = /home/nwn/mysqldata/instA/data
tmpdir                  = /home/nwn/mysqldata/instA/tmp
secure_file_priv        = /home/nwn/mysqldata/instA/mysql-files
max_connections         = 150

# Logging
log-bin                 = /home/nwn/mysqldata/instA/logs/instA-binlog
log-error               = /home/nwn/mysqldata/instA/logs/instA-errorlog.err
slow_query_log          = 1
slow_query_log_file     = /home/nwn/mysqldata/instA/logs/instA-slowquery.log
long_query_time         = 0.5

# InnoDB
innodb_data_home_dir    = /home/nwn/mysqldata/instA/innodb/data
innodb_data_file_path   = ibdata1:50M;ibdata2:12M:autoextend:max:500M
innodb_log_group_home_dir = /home/nwn/mysqldata/instA/innodb/log
innodb_buffer_pool_size = 32M

# MyISAM
key_buffer_size         = 16M

server_id                = 1

我做了所有其他配置。 当我运行以下命令时

mysql-8.0]$ bin/mysqld --defaults-file=~/mysqldata/instA/my.cnf --initialize-insercure

我在 error_log 中有以下日志

 cat ~/mysqldata/instA/logs/instA-errorlog.err
2018-10-09T10:39:51.127424Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8160)
2018-10-09T10:39:51.127523Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 432 (requested 4000)
2018-10-09T10:39:51.383986Z 0 [Warning] [MY-010101] [Server] Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different directory.
2018-10-09T10:39:51.384043Z 0 [System] [MY-010116] [Server] /home/nwn/mysql/mysql-8.0/bin/mysqld (mysqld 8.0.12) starting as process 32654
2018-10-09T10:39:51.386625Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2018-10-09T10:39:51.394675Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2018-10-09T10:39:51.394817Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-10-09T10:39:51.394831Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-10-09T10:39:51.395363Z 0 [System] [MY-010910] [Server] /home/nwn/mysql/mysql-8.0/bin/mysqld: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.

最佳答案

尽管帖子很旧,但发布我的解决方案是因为我花了大约 2 个小时才弄明白,这可以帮助其他人节省时间。

你可以尝试这样做:

shell> mysqld --initialize

这将在您安装 MySql 服务器的路径中初始化数据目录。一般放在C:\Program Files\MySQL\MySQL Server 8.0。

希望对大家有帮助。

关于mysql - 找不到有效的数据目录。 MySQL通用二进制安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52719378/

相关文章:

mysql - Ubuntu mySQL 服务器管理员 GUI - 如何在 gui 中查看实际的数据库表数据?

mysql innotop 不工作 - 使用统一值

mysql - 我怎样才能在mysql中做自己的增量值

mysql - 在插入或更新时获取完整的 MySQL 查询字符串

Mysql嵌套查询访问父字段值

MYSQL 快速插入依赖于来自单独表的标志

mysql - 如何在 UPDATE 查询中进行此 SELECT 查询?

mysql - 如何获取选择子查询,其中另一个表的整个数据以json格式获取

适用于 Windows 的 MySql,MySql 管理员 : Scheduled backup not working