mysql 权限问题-与 my.cnf 相关

mysql 权限问题-与 my.cnf 相关

可能重复:
mysql 权限问题 - 与 my.cnf 相关

我想更改 max_allowed_pa​​cket 值,但是当将 my.cnf 的权限设置为 777 时,我得到(如预期的那样):

警告:可全局写入的配置文件‘/etc/my.cnf’被忽略

如果我将其设置为低于该值的任何值(600、644、700、775,全部尝试过……),mysqld 服务将无法启动。

服务重启失败时的错误日志为:

110814 14:30:28 mysqld_safe 使用 /var/lib/mysql 中的数据库启动 mysqld 守护进程 958 警告:忽略全局可写配置文件 '/etc/my.cnf' 959 110814 14:30:28 [注意] 插件 'ndbcluster' 已禁用。 960 /usr/libexec/mysqld:表 'mysql.plugin' 不存在 961 110814 14:30:28 [错误] 无法打开 mysql.plugin 表。请运行 mysql_upgrade 来创建它。 962 110814 14:30:28 InnoDB:初始化缓冲池,大小 = 8.0M 963 110814 14:30:28 InnoDB:已完成缓冲池初始化
964 110814 14:30:28 InnoDB:已启动;日志序列号 0 47678
965 110814 14:30:28 [错误] 无法打开和锁定特权表:表“mysql.servers”不存在 966 110814 14:30:28 [错误] mysql.db 的列数错误。预期 22,实际为 20。使用 MySQL 50086 创建,现在运行 50158。请使用 mysql_upgrade 修复此错误。 967 110814 14:30:28 [错误] mysql.user 在位置 29 没有Event_priv 列 968 110814 14:30:28 [错误] 无法打开 mysql.event 969 110814 14:30:28 [错误] 事件调度程序:初始化系统表时发生错误。禁用事件调度程序。 970 110814 14:30:28 [注意] /usr/libexec/mysqld:已准备好连接。 971 版本:'5.1.58' 套接字:'/var/lib/mysql/mysql.sock' 端口:3306 源分布 972 110814 14:33:46 [注] /usr/libexec/mysqld: 正常关机 973
974 110814 14:33:46 InnoDB: 正在开始关机... 975 110814 14:33:48 InnoDB: 关机完成;日志序列号 0 47678
976 110814 14:33:48 [注] /usr/libexec/mysqld: 关机完成
977 978 110814 14:33:48 mysqld_safe mysqld 从 pid 文件 /var/run/mysqld/mysqld.pid 结束

作为 Linux 新手,我不太了解这个错误日志,但对某些人来说它可能很有意义。

我相信这与某些文件的权限设置有关,因为我发现许多文件被设置为 777。我知道的不多,但我知道这很糟糕。:) 但问题是,我不知道从哪里开始查找和修复。

完成所有这些的系统是CentOS 5.5。

编辑:这个问题终于解决了。通过将 my.cnf 中的 bind-address 从实际 IP 更改为 127.0.0.1 来实现。谢谢大家的帮助。 另外,这个问题有重复,因为我不知道它可以从一个论坛移动到另一个论坛。您可以随意删除这个或另一个(标题完全相同)的问题。

答案1

绝不将任何文件的权限设置为 777。这意味着每个人都可以写入您的文件。

my.cnf应该具有权限 644 并由 root 拥有。关于错误“表‘mysql.plugin’不存在”如上所述,您应该~/.my.cnf在 $HOME 中创建一个如下文件:

[mysql_upgrade]
user     = user
password = password
socket   = /path/to/mysql.sock

然后运行mysql_upgrade来修复这个问题。

相关内容