MySQL 在终端中不工作,但可以连接到数据库并使用查询

标签 mysql macos command-line terminal

我试过在MacOS下用命令行启动MySQL,但总是报错:

~ mysql.server start
my_print_defaults: [ERROR] Found option without preceding group in config file /etc/my.cnf at line 1!
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
Starting MySQL
.my_print_defaults: [ERROR] Found option without preceding group in config file /etc/my.cnf at line 1!
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!
my_print_defaults: [ERROR] Found option without preceding group in config file /etc/my.cnf at line 1!
my_print_defaults: [ERROR] Fatal error in defaults handling. Program aborted!

我查了一下错误,大部分的答案是在my.cnf中添加[mysqld],我检查了my.cnf文件,它已经有了[mysqld]标签。 这是my.cnf,在我通过Reinstalling Mysql on Mac via Homebrew · GitHub重装MySQL之前是不存在的

Default Homebrew MySQL server config

[mysqld]

Only allow connections from localhost

bind-address = 127.0.0.1

secure_file_priv=''

然后我发现另一种可能的方法是将字符集更改为ANSI或ASCII,于是我查看了my.cnf文件,但它是ASCII编码。

~ enca -L none /usr/local/etc/my.cnf
7bit ASCII characters

我试着停止并重新启动,仍然出现同样的错误。顺便说一句,我使用了另一个命令,它显示了不同的错误:

~ service mysql restart
zsh: command not found: service

所以我更改了 $PATH 配置,它仍然无法正常工作。

终于在系统偏好设置里发现可以启动MySQL了,但是配置文件是空的,我改成/usr/local/etc/my.cnf运行,显示MySQL server开始。我可以使用查询并连接到数据库。

但是,当我使用上面的命令时仍然出现相同的错误,而且我无法在 MySQL Workbench 中使用数据导出。我跑了 /usr/local/mysql-8.0.12-macos10.13-x86_64/bin/mysqldump ,它显示了同样的错误。

请帮忙。

最佳答案

请确保您的my.cnf 文件使用# 符号作为注释行。您看到的错误看起来像是您从某些行中删除了井号。这是我自己的 my.cnf 文件的样子,请注意有些行以 # 开头,这样它们就不会被 MySQL 视为指令:

# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1

关于MySQL 在终端中不工作,但可以连接到数据库并使用查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53041039/

相关文章:

c++ - 尝试在 mac osx 上编译 tcpxtract 会给出未找到的 i386 符号

java - 从命令行通过 ant 构建 java eclipse 项目时出错

java - 如何使用 javap 工具打印 jar 文件中的类结构?

php - MySQL 更新多列问题

c# - 日期时间格式到 YYYY-mm-dd 转换 c# asp.net

java - 无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 的构造函数。空指针异常

java - OS X 下的 dtruss 在跟踪 java 时是否给出一致的结果?

objective-c - 分离由 CGWindowListCopyWindowInfo 返回的真实和虚拟窗口

mysql - 为什么我的 mysql 代码不起作用

macos - 让 Docker for mac 监听 tcp 端口