Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1117
  • Last Modified:

MySql max_allowed_packet

I setup new LAMP VM (has 4Gb ram) and need to restore 9Gb sql file to a database in MySQL.
I configured my.cnf file with
[mysql]
max_allowed_packet=2G


I try to import sql file with 'mysql' command with '--max_allowed_packet' option but failed with below message.

Get a packet bigger than 'max_allowed_packet' bytes.

I figured out the packet size in phpmyadmin but ...
@@max_allowed_packet
1048576

Any suggestion?
0
Ken_Kim
Asked:
Ken_Kim
  • 4
1 Solution
 
nbhuCommented:
Hi,
The default is 1MB,2G is more than the upper limit, max is 1G.
From Mysql documentation:
max_allowed_packet
Command-Line Format       --max_allowed_packet=#
Option-File Format       max_allowed_packet
Option Sets Variable       Yes, max_allowed_packet
Variable Name       max_allowed_packet
Variable Scope       Global
Dynamic Variable       Yes
        Permitted Values
Type       numeric
Default       1048576
Range       1024 .. 1073741824

The maximum size of one packet or any generated/intermediate string.

The packet message buffer is initialized to net_buffer_length bytes, but can grow up to max_allowed_packet bytes when needed. This value by default is small, to catch large (possibly incorrect) packets.

You must increase this value if you are using large BLOB columns or long strings. It should be as big as the largest BLOB you want to use. The protocol limit for max_allowed_packet is 1GB. The value should be a multiple of 1024; nonmultiples are rounded down to the nearest multiple.

When you change the message buffer size by changing the value of the max_allowed_packet variable, you should also change the buffer size on the client side if your client program permits it. On the client side, max_allowed_packet has a default of 1GB. Some programs such as mysql and mysqldump enable you to change the client-side value by setting max_allowed_packet on the command line or in an option file.

The session value of this variable is read only.

Regards, nbhu
0
 
nbhuCommented:
P.S.
I think your setting is too big, so it is invalid and ignored.
@@max_allowed_packet
1048576
This is the dafault setting.
Regards, nbhu
0
 
Ken_KimAuthor Commented:
It's only working in session like putty.
0
A proven path to a career in data science

At Springboard, we know how to get you a job in data science. With Springboard’s Data Science Career Track, you’ll master data science  with a curriculum built by industry experts. You’ll work on real projects, and get 1-on-1 mentorship from a data scientist.

 
nbhuCommented:
Hi,
You can put it in my.ini or my.cnf, so it remains always valid.
We do this on windows, and it is working.
Regards, nbhu
0
 
nbhuCommented:
You have to put it in the following section:
[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306
max_allowed_packet=4M


Regards, nbhu
0
 
pete-mcpeteyCommented:
If it's working in a PuTTY SSH session, you're good. There is no way you are going to get a 9GB file through a client like phpMyAdmin.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now