Today is Wednesday, 1st July 2020

Archive for the ‘JDBC’ Category


JDBC and MySQL: Getting rid of the dreaded message – WARN: Establishing SSL connection without server’s identity verification is not recommended

When connecting to a MySQL database, you may encounter this scary warning message.

Thu Feb 04 14:49:25 IST 2016 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Your app will continue to work fine … it is just the MySQL database yelling at you.

To get rid of the warning message. Append ?useSSL=false to the end of your database connection string.

For example,

Replace – jdbc:mysql://localhost:3306/demo

With – jdbc:mysql://localhost:3306/demo?useSSL=false

Note that I appended ?useSSL=false to the end.

That will get rid of the pesky message … whew!



JDBC BLOB: Handling large file sizes

JDBC has support for storing binary files in the database using the BLOB datatype. I covered this in a previous blog post: Reading and Writing BLOBs with MySQL.

However, you may run into errors if you need to store large files. In particular, you may encounter the following error messages:

Packets larger than max_allowed_packet are not allowed.
Data too long for column 'xxx' at row 1.

By default, the BLOB datatype can only handle files up to 64KB.

MySQL has multiple datatypes for handling binary data:

 TINYBLOB   :     maximum length of 255 bytes
 BLOB       :     maximum length of 65,535 bytes
 MEDIUMBLOB :     maximum length of 16,777,215 bytes
 LONGBLOB   :     maximum length of 4,294,967,295 bytes 

Storing Larger Files

If you need to store larger files, then follow these steps:

1. Change the databtype of your BLOB column to LONGBLOB

ALTER TABLE `demo`.`employees`
CHANGE COLUMN `resume` `resume` LONGBLOB NULL DEFAULT NULL ;

2. Edit the MySQL configuration file

On MS Windows: C:\Program Files\MySQL\MySQL Server x.x\my.ini
On Mac: /usr/local/mysql/my.cnf

In this file, add the line:

max_allowed_packet=256M

See the image below

MySQL Config file

MySQL Config file

 

3. Save the file and restart your MySQL server

4. Test your application again. You will now be able to store large files.

 

Enjoy 🙂



Smiley Face

Tweets like this bring a smile to my face. ’nuff said 🙂

Java JDBC tutorial thanks