FreeBSD 默认 MySQL basedir、端口等,用于 my.cnf

FreeBSD 默认 MySQL basedir、端口等,用于 my.cnf

我正在使用 FreeBSD 9.2 服务器,并已运行mysqltuner.pl以检查 MySQL 的内存和缓存需求。现在我需要my.cnf向 FreeBSD 添加一个文件,以便它使用该文件而不是该auto cnf文件。

我可以通过my-default.cnf以下方式复制:

cp /usr/local/share/mysql/my-default.cnf /usr/local/etc/my.cnf

然后my.cnf就会加载。

my-default.cnf文件显示以下值(将延续到my.cnf):

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# *the above innodb line I can set*

# *But where do I get the values below?*

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

我从哪里获取上述值?我知道它们一定来自当前 MySQL 服务器,但如何找到这些设置?

这个问题应该https://dba.stackexchange.com/

答案1

您可以获得当前的通过登录 mysql 并运行查询进行配置

SHOW VARIABLES;

要搜索特定配置,可以使用 SQL 语法。例如,要了解当前数据目录,请使用:

SHOW VARIABLES LIKE '%datadir%';

参考:MySQL 官方文档

答案2

通常你不必定义这些参数,因为它们很难编译到作为 FreeBSD 端口构建的 mysql 中。你必须更改负责数据库引擎调整的参数。

例如,这是我的配置

[client]
  port            = *****
[mysqld]
  port            = *****
  skip-external-locking
  key_buffer_size         = 128M
  max_allowed_packet      = 1M
  table_open_cache        = 512
  join_buffer_size        = 2M
  sort_buffer_size        = 2M
  read_buffer_size        = 2M
  read_rnd_buffer_size    = 8M
  myisam_sort_buffer_size = 32M
  query_cache_limit       = 2M
  query_cache_size        = 32M
  thread_cache_size       = 4
  thread_concurrency      = 8
  event-scheduler         = ON
  server-id               = 1
[mysqldump]
  quick
  max_allowed_packet      = 16M
[mysql]
  no-auto-rehash
[myisamchk]
  key_buffer_size         = 128M
  sort_buffer_size        = 128M
  read_buffer             = 2M
  write_buffer            = 2M
[mysqlhotcopy]
  interactive-timeout

我所做的只是更改 tcp 端口,以避免愚蠢的 h4xor 敲击标准 3306

答案3

我知道这篇文章已经有好几年了,自 FreeBSD 9.2(实际上是 2017 年 11 月的 11.1 版)以来,很多东西都发生了变化,你可以在

/usr/local/etc/mysql

相关内容