Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: replace mysqljs with mysql2 #7590

Conversation

jniles
Copy link
Collaborator

@jniles jniles commented May 23, 2024

This PR replaces mysql with mysql2. Learn more about some of the benefits of using mysql2 here.

The reason I am making this change is because MySQL 8.4 completely removed compatibility for the default authentication method we were using previously (mysql_native_password). If you tried to start the server with MySQL 8.4, you would receive this warning:

unknown variable 'default-authentication-plugin=mysql_native_password'

The mysql npm package is de facto deprecated in lieu of the mysql2 npm package. There has been an outstanding pull request to add in the new authentication methods, but it doesn't look like this has any chance of being merged anytime soon.

Note that, for docker, the plugin has been removed, but a new flag has been added --mysql-native-password=ON to enable the mysql-native password authentication. We'll likely need to switch off this in a future version to their SHA2 caching plugin. However, I'm not sure what that would involve at this point. Using this flag is a stopgap while we figure that out.

jniles and others added 8 commits May 17, 2024 10:05
Migrates from mysqljs to mysql2 to support MySQL 8.4+.
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.16.2 to 1.16.5.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](sparklemotion/nokogiri@v1.16.2...v1.16.5)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [rexml](https://github.com/ruby/rexml) from 3.2.5 to 3.2.8.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](ruby/rexml@v3.2.5...v3.2.8)

---
updated-dependencies:
- dependency-name: rexml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.2.4 to 48.2.5.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](gajus/eslint-plugin-jsdoc@v48.2.4...v48.2.5)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [sinon](https://github.com/sinonjs/sinon) from 17.0.2 to 18.0.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](sinonjs/sinon@v17.0.2...v18.0.0)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
updated-dependencies:
- dependency-name: release-it
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Updates the docker compose file to use mysql 8.4.
Copy link
Collaborator

@jmcameron jmcameron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code changes look very reasonable. And I feel that is an issue that needs to be addressed soon, so I'm happy to accept this PR.

I tested this branch on my local test setup and it works without any issues. All regular and end-to-end tests pass.

I did not test the parts of this related to running with Docker compose.

@jmcameron jmcameron merged commit 67cd2b9 into Third-Culture-Software:master May 23, 2024
1 check passed
@jniles jniles deleted the deps-switch-to-mysql2 branch May 23, 2024 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants