想要在本地进行数据库测试,本地 Mac 安装的 MariaDB 数据库是通过 brew 命令安装的,想要修改配置文件的一个地方,却怎么也找不到配置文件。
上网搜索一下了解到,Mac 中的 MySQL 或者 MariaDB 默认安装好了是没有配置文件的,如果想要修改,需要自己手动创建。那么问题来了,要创建到什么路径下?
查找 Mac 本机的数据库配置文件
使用 mysql --verbose --help | grep my.cnf 命令可以查到本机 MariaDB 或者 MySQL 配置文件的位置。
例如我的查到如下图:
最初我以为是在 /opt/homebrew/etc/my.cnf 这个路径下,于是修改了这个文件的配置,重启数据库之后发现配置并没有生效,于是又将 ~/.my.cnf 文件修改为我要修改的内容,重启之后发现生效了。
所以在 Mac 中使 MariaDB 或 MySQL 生效的配置文件是 .my.cnf 文件,我查找的资料也有提过,参考资料可以看末尾链接。
附 MariaDB 重启命令:brew services restart mariadb
默认数据库配置文件内容
如果不知道默认 my.cnf 的内容,可以参考下面:
# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
[client]
default-character-set=utf8
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id = 1
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
# Causes updates to non-transactional engines using statement format to be
# written directly to binary log. Before using this option make sure that
# there are no dependencies between transactional and non-transactional
# tables such as in the statement INSERT INTO t_myisam SELECT * FROM
# t_innodb; otherwise, slaves may diverge from the master.
#binlog_direct_non_transactional_updates=TRUE
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysql/data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/data
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
ShellScript参考资料
https://juejin.cn/s/brew%20install%20mysql%20my.cnf
https://blog.csdn.net/StillCity/article/details/88558039
https://www.cnblogs.com/james6176/p/16227656.html
https://cloud.tencent.com/developer/article/2094042
文章评论