mysql - 未能找到有效的数据目录。MySQL 通用二进制安装
问题描述
我打算将mysql安装到linux服务器。但是我没有对该服务器的root访问权限。所以我创建了两个文件夹,分别是 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。
希望它可以帮助某人。
推荐阅读
- altair - 在 altair-viz 中处理连接的图像
- swiftui - 使用扩展将用户位置存储在可用变量中
- html - 不显示背景图片
- html - 无法在其他页面上添加指向书签的链接
- javascript - 为什么在非零 Y 调用 window.scrollTo(...) 后页面滚动到顶部
- django - Django 模型。未定义的变量
- angular - 需要帮助让 IE11 与 Angular 1.5 / Angular 10 一起工作(ngUpgrade 项目)
- python-3.x - 将带有源属性的已验证数据传递回嵌套序列化程序
- sql-server - 从 PowerShell 插入 SQL Server 时转义单引号
- snowflake-schema - 将 csv 文件加载到雪花表时出错,因为“无法识别时间戳 '9/15/2020 1:28:00 AM'”