2025年1月31日 星期五 甲辰(龙)年 冬月廿九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 系统应用 > macOS

Mac上安装Mysql8.0修改my.cnf配置文件(忽略大小写)

时间:02-17来源:作者:点击数:19

一. 基础信息

操作系统版本 MacOS Monterey12.5.1
mysql版本 Mysql8.0.30

二.下载地址

官网下载地址:https://dev.mysql.com/downloads/mysql/

image-20220909155805336

三. Mysql8.0安装

  1. 如上图所示,因为我们下载的是dmg文件,所以安装非常简单,只需要一路点下一步就好了。
  2. 默认安装完后我们打开电脑的系统偏好设置,可以看到如下图标:
image-20220909160415700
  1. 点击这个图标,我们可以看到我们的mysql已经启动了,如果没有启动,可以点击Start MySQL Server这个按钮
    image-20220909160653229

说明:

  1. Mysql默认安装路径为:/usr/local/mysql;
  2. Mysql安装后不会生成my.cnf文件;
  3. Mysql安装后默认是区分大小写的,要想不区分大小写,必须删除/usr/local/mysql/data目录,自己编写my.cnf配置文件,并在my.cnf文件中增加参数lower_case_table_names = 1然后重新初始化数据库,最后重启Mysql服务;

四. 配置文件修改

我们上面说了,默认情况下安装Mysql后不会生成my.cnf配置文件,但是有些参数我们需要修改,比如:默认端口、最大连接数、大小写敏感等。

有些版本安装后可能会在support-file文件目录下生成my-default.cnf文件,如果有这个文件,我们可以自己复制该文件,并重命名为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 = 3336
  • 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 = 13306 # 我修改了默认端口
  • socket = /tmp/mysql.sock
  • lower_case_table_names = 1 # 是否对sql语句大小写敏感,1表示不敏感,即不区分大小写
  • 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 = 256K # 该字段根据需要修改,默认是128K,我的是因为启动报了这个字段的错导致启动失败,所以我改成256K了
  • # 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

五. 初始化Mysql数据库

前面说到默认Mysql安装后是区分大小写的,需要我们修改my.cnf配置文件,修改完后还需要重新初始化mysql,下面假设我们已经修改好了my.cnf配置文件,现在说说如何初始化数据库。

  1. 如果已经有数据了必须先做好备份,具体如何备份我在这就不具体说了;
  2. 删除/usr/local/mysql/data目录;
  3. 点击系统偏好设置,点击左下角的mysql图标,选择Configuration,下面勾选Configuration File,并在后面选择我们编写好的my.cnf配置文件,点击提交;
    image-20220909174101605
  4. 再回到Instances页面,点击Initialize Database,设置root密码,勾选Load configuraction file,点击OK,这样就开始初始化了。
image-20220909175352137

如果拿我上面的my.cnf配置文件,正常情况下初始化就不会有问题了,我们的数据库也就能支持不区分大小写了。

六. 常见问题

  1. 初始化时报如下错误
    image-20220909180519149
    如上报错有两个错误信息
    第一个是说my.cnf配置文件中【mysqld】节点下的thread_stack字段值设置太小;
    第二个是说/usr/local/mysql-8.0.30-macos12-arm64/data/目录不可用,需要我们先删除,然后再进行初始化;
    所以我们的解决方案就是
    1. 将mysqld】节点下的thread_stack字段值改大
      • thread_stack = 256K # 原来设置的是128K
    2. 删除/usr/local/mysql-8.0.30-macos12-arm64/data/目录
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门