zoukankan      html  css  js  c++  java
  • 修改mysql配置中my.conf中max_allowed_packet变量

    mysql根据配置文件会限制server接受的数据包大小。

    有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。

    查看目前配置

    show VARIABLES like '%max_allowed_packet%';

    显示的结果为:

    +--------------------+---------+

    | Variable_name      | Value   |

    +--------------------+---------+

    | max_allowed_packet | 1048576 |

    +--------------------+---------+  

    以上说明目前的配置是:1M

    修改方法

    1、修改配置文件 (详情见下文配置步骤)

    可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

    max_allowed_packet = 20M

    如果找不到my.cnf可以通过

    mysql --help | grep my.cnf

    去寻找my.cnf文件。

    linux下该文件在/etc/下。

    2、在mysql命令行中修改

    在mysql 命令行中运行

    set global max_allowed_packet = 2*1024*1024*10

    然后退出命令行,重启mysql服务,再进入。

    show VARIABLES like '%max_allowed_packet%';

    查看下max_allowed_packet是否编辑成功

    配置步骤

    1、首先查看mysql安装目录下support-files文件夹下是否有my-default.cnf这个文件

    localhost:etc qingclass$ pwd
    /usr/local/mysql/support-files
    sun:support-files sun$ ll
    total 48
    -rw-r--r--  1 root  wheel    773  3  4 21:40 magic
    -rwxr-xr-x  1 root  wheel    894  3  4 22:27 mysql-log-rotate*
    -rwxr-xr-x  1 root  wheel  10585  3  4 22:27 mysql.server*
    -rwxr-xr-x  1 root  wheel   1061  3  4 22:27 mysqld_multi.server*

    如果有,就好办了,直接转移到/etc下,并且修改名字为my.cnf

    2、如果没有则需要自己创建一个文件。

    localhost:etc qingclass$ sudo vim 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]
    #解决only_full_group_by的问题
    #sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
     
    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

    修改 mysqldump 和 mysqld  中修改max_allowed_packet变量退出保存

    3、修改配置文件权限

    chmod 664 /etc/my.cnf

    4、重启mysql

    5、登录mysql服务器 选择库,执行导入source /Users/qingclass/Downloads/sale_shared_revenue.sql

    SpringCloudAlibaba实战教程系列  

    Docker(部署常见应用):Docker安装MySql完整教程、实操 

    Docker版:Mysql分库分表MyCat实战  

    Docker实现Mysql主从复制实战(一主一从、双主双从)  

    mysql 5.8以上版本有问题可以参考:

    mysql-管理命令【创建用户、授权、修改密码、删除用户和授权、忘记root密码】

  • 相关阅读:
    利用Spring AOP自定义注解解决日志和签名校验
    SpringBoot返回date日期格式化,解决返回为TIMESTAMP时间戳格式或8小时时间差
    @RequestBody配合@JsonFormat注解实现字符串自动转换成Date
    Mysql的时间类型问题
    IntelliJ IDEA使用maven-javadoc-plugin生成Java Doc控制台乱码
    Maven学习笔记(十二)-maven打包之resource配置
    SpringBoot使用@Value从yml文件取值为空--注入静态变量
    cloud server ribbon 自定义策略配置
    JNA 如何 加载多个 存在依赖的 DLL 库
    Remote Desktop File Format
  • 原文地址:https://www.cnblogs.com/niunafei/p/11389244.html
Copyright © 2011-2022 走看看