Updated the mysql connector. Net to version 6.6.4 provider to integrate with visual studio 2012, but now when I try to configure the connection to the edmx occurs the error "Authentication method 'mysql_old_password' not supported".
This error message is shown when you are connecting to a MySQL database that has its passwords stored in the old password format (http://dev.mysql.com/doc/refman/5.0/en/old-client.html). Newer MySQL clients do not allow a connection to be made to databases using the old password format as it is less secure.
Some would suggest to set old_passwords=1 at the MySQL server, but I think it would be better to upgrade the passwords to the new password format. Then the MySQL connection can be setup again and your database will be better protected.
You can read about how to upgrade your MySQL passwords from the old format to the new format here: http://code.openark.org/blog/mysql/upgrading-passwords-from-old_passwords-to-new-passwords
MysqL Connector/NET 6.6.x (as of 6.6.2) dropped support for old password style authentication (it was deprecated due to being insecure and there were documented ways to attack it).
When trying to use it with old password style account, you will get an Arithmethic overflow error (granted, a more friendly error would be better).
As stated in this bug report: http://bugs.mysql.com/bug.php?id=66647
For Connector/NET you have to use Native 4.1 style passwords (which is old_passwords=0).
Other option is Windows Style Authentication, which is also supported, but you'll need some MySql commercial edition (standard MySql server doesn't have support for windows authentication).
Mysql_old_password was temporary and was ment to be used for older mysql clients right after 4.1.1 to authenticate to a pre-4.1.1 mysql server.
Setting the var old_passwords=1 in your mysql servers my.ini should enable this functionality.
Related
I have MySQL database up and running with the caching_sha2_password authentication.
It allows for creating users with the standard password authentication (mysql_native_password) but when trying to connect from a remote host with standard auth the user I'm getting 'The server requested authentication method unknown to the client [caching_sha2_password]...' error anyway.
Is it possible to use the legacy authentication for selected users even if the server supports caching_sha2_password.
The reason would be e. g. using strong authentication for the root and standard for the other accounts with limited access to single schemas.
(Version 8.0.16 GPL)
You can specify the authentication method for each user individually in the plugin column of the mysql.user table. Check the documentation 6.2.3 Grant Tables - The user and db Tables:
The server uses the plugin named in the plugin column of an account row to authenticate connection attempts for the account.
Turned out that problem was on the client side – PHP 7 compatibility issues with MySQL 8.
Helpful link: https://github.com/laradock/laradock/issues/1130
After upgrading PHP to 7.3 my problem vanished.
I recently setup a new AWS server to be used as a web server for some small utility apps. It's running Windows 2012. I then:
Installed Chrome
Installed Lucee 5.2.7.63 using installer
Installed MySQL 8.0.11 Community Edition using installer
Installed MySQL Workbench
Created a new schema via MySQL Workbench (which connects to MySQL just fine)
Created a datasource in Lucee server administrator which fails verification with:
Could not create connection to database server.
I tried using both a Lucee specific user, and the root user, and neither worked. When I checked the Lucee error log I saw this occur several times, once for each verification attempt:
Wed Jul 18 19:52:08 UTC 2018 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.
My guess is that I either need to force Lucee to use SSL, or force MySQL to allow a non SSL connection. Unfortunately, the Lucee administrator has no option related to SSL and doesn't allow me to modify the connect string manually. And I'm unsure how to alter settings for MySQL as I can't seem to find a my.ini file anymore.
The last time I setup a server was with MySQL 5.7 and I had no problems from start to finish, so I assume this must be a MySQL 5.8+ issue, but that is contradicted by the error message.
Update
In the end I decided to uninstall MySQL 8 and install MySQL 5.7. It was difficult to download the installer for 5.7 (I got 8 again the first time for some reason), and then there was a conflict with the MySQL installer, that didn't want to recognize the 5.7 I downloaded, but after getting through it all Lucee began connecting immediately with no problem.
I would still be interested in a solution, though, so that I can use MySQL 8 in the future.
You could try defining the datasource in your Application.cfc which will give you more control over the connection parameters. For example:
this.datasource = {
database: "mydatabase"
,type: "mysql"
,host: "hostname"
,port: 3306
,username: "myusername"
,password: "encryptedpassword"
,custom: {
useSSL: false
,useUnicode: true
,characterEncoding: "UTF-8"
}
};
When I try to connect to server on MySQL Workbench, I get the error saying
Your connection attempt failed to user 'root' from your host to server as localhost:3306:
Authentication plugin caching_sha2_password cannot be loaded:
The specified module could not be found.
It seems like I do not have the module for caching_sha2_password installed. How do I install this plugin?
I tried to follow steps provided here. But this is my first interaction with MySQL, so I did not understand the steps.
For example, under Using SHA-2 Pluggable Authentication, it says
"storing those values in the plugin and authentication_string columns of the > mysql.user system table."
But where is the mysql.user system table and how do I access it and store the values?
Any help would be greatly appreciated!
You are looking at the wrong places. The story is this:
MySQL 8 introduced a new authentication method: caching_sha2_password which improves performance (hence the caching) for a secure authentication (the sha2 hashing). This breaking change had been made the default for new accounts pretty late so that MySQL Workbench (and quite a number of other client tools) could not be made ready for it when MySQL 8.0.11 was released. Unprepared client applications/libraries will show the mentioned error.
Many of the socalled "solutions" simply recommend to switch the authentication method to the older, less secure one (MySQL native). This is rather a hack than a solution. And keep in mind this only applies to new accounts which by default use the new auth method. Existing accounts (e.g. when you upgrade an older server to 8.0) still work as before, unless you explicitly changed the user's auth method.
Meanwhile MySQL Workbench catched up here and there's a release candidate (MySQL Workbench 8.0.11 RC) available on the MySQL download page (see the "Development Releases" tab). Use that for your 8.x server. A GA version will follow soon.
I have access to 2 MySQL Servers (one for production and one for development). I have the host, port, database, user, password and the CA Cert file for them. I could connect to both using mysql workbench and from the windows cmd. (Yes, I have to work on windows for now)
Now according to security requirements, I need to connect using protocol TLSv1.2 or TLSv1.2, and Cipher AES256 and SHA2. These are currently not enforced on the development server, but they are on the production, and I am not able to connect on the production right now.
I satisfy AES256 and TLSv1.1 requirement.
But how do I get my client to connect using SHA2? Both Workbench and CMD doesn't work when I specify a cipher using both AES256 and SHA256 or SHA384. But it works fine if I specify something like AES256-SHA. Does this mean that it is not supported and I need to update something? By default, it uses 'DHE-RSA-AES256-SHA'
If I try to set one of the AES256-SHA2 cipher on the production, I get the error:
ERROR 2026 (HY000): SSL connection error: Failed to set ciphers to use
If I don't specify any ciphers, I get the error
ERROR 2026 (HY000): SSL connection error: unknown error number
I've looked up multiple posts on stackoverflow, mysql devs and mysql bugs website, and none seem to address this.
I have to ultimately get this to work with Ms. Access, since MySQL will be the backend for it. I even tried by creating a system DSN, but the same error pops up.
Maybe the ODBC Connector doesn't support SHA2? I couldn't find anything on this anywhere.
I have the latest version of ODBC and MySQL Workbench.
Turns out, the community versions(free) of MySQL Workbench and ODBC are compiled using yaSSL while the commercial versions use OpenSSL. And SHA2 is not supported by yaSSL. Once I got the commercial versions, I was able to connect using SHA2.
I am using Oracle SQL Developer to browse a MySQL database. When I browse table with Columns tab (shows table definitions), some of tables will display an Error Encountered dialog that says:
Vendor code 1317
Are you using the latest version of SQL Developer?
Might be worth asking this question on the SQL Developer Forum on OTN as it is well supported by the Oracle SQL Developer team.
I had a quick search and the only thread I could find was this one in which one of the responses reports the same problem as you but unfortunately there is not a direct response to it.
SQL Developer doesn't support 5.1.x series of jdbc mysql connector... you need to set up sql developer to use mysql-connector-java-5.0.4 in driver settings. You better use this one, because I was having the issue even with mysql-connector-java-5.0.8
To browse MYSQL DB with version Oracle SQL Developer (version 2.1.2.64) and avoid the above problem, you must use mysql/J connector: mysql-connector-java-5.0.4.
mysql-connector-java-5.0.8 or mysql-connector-java-5.1.* WILL NOT work.
1317 seems to be the mySQL code for ER_QUERY_INTERRUPTED.
Maybe some sort of timeout ?
Please check the following link for the answer
http://download.oracle.com/docs/cd/E15846_01/doc.21/e15222/intro.htm#CHDIEGDD
This is an excerpt from the above link:
Database: Third Party JDBC Drivers
The Third Party JDBC Drivers pane
specifies drivers to be used for
connections to third-party
(non-Oracle) databases, such as IBM
DB2, MySQL, Microsoft SQL Server, or
Sybase Adaptive Server. (You do not
need to add a driver for connections
to Microsoft Access databases.) To add
a driver, click Add Entry and select
the path for the driver:
For IBM DB2: the db2jcc.jar and
db2jcc_license_cu.jar files, which are
available from IBM
For MySQL: a file with a name similar
to mysql-connector-java-5.0.4-bin.jar,
in a directory under the one into
which you unzipped the download for
the MySQL driver
For Microsoft SQL Server or Sybase
Adaptive Server: jtds-1.2.jar, which
is included in the jtds-1.2-dist.zip
download
For Teradata: tdgssconfig.jar and
terajdbc4.jar, which are included
(along with a readme.txt file) in the
TeraJDBC__indep_indep.12.00.00.110.zip
or
TeraJDBC__indep_indep.12.00.00.110.tar
download
Alternative: As an alternative to
using this preference, you can click
Help, then Check for Updates to
install the JTDS JDBC Driver for
Microsoft SQL Server and the MySQL
JDBE Driver as extensions.
To find a specific third-party JDBC
driver, see the appropriate Web site.
For MySQL, use the MySQL 5.0 driver, not
5.1 or later, with SQL Developer release 1.5.
You must specify a third-party JDBC
driver or install a driver using the
Check for Updates feature before you
can create a database connection to a
third-party database of that
associated type. (See the tabs for
creating connections to third-party
databases in the Create/Edit/Select
Database Connection dialog box.)