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


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

    一. 基础信息

    操作系统版本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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83

    五. 初始化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
        
        • 1
      2. 删除/usr/local/mysql-8.0.30-macos12-arm64/data/目录

  • 相关阅读:
    自适应控制——仿真实验二 用Narendra方案设计模型参考自适应系统
    辐射骚扰整改思路及方法:实地验证?|深圳比创达电子EMC
    Spring-ApplicationContext refresh的流程
    基础DQL(数据查询)—— 内连接&外连接
    【学习OpenCV4】OpenCV入门精讲(C++/Python双语教学)
    Vim操作的常用命令记录
    三维重建之PIFuHD
    请帮我看下下面的题我写的代码为什么没有输出,哪里写错了
    Linux用户管理
    js农历与阳历转换使用笔记
  • 原文地址:https://blog.csdn.net/tl4832194/article/details/126787699