14,953
edits
| Line 139: | Line 139: | ||
== Access and Authentication Errors == | == Access and Authentication Errors == | ||
=== [Warning] Using a password on the command line interface can be insecure === | |||
Problem Description: | |||
When exporting or importing MySQL databases via bash commands, you may encounter the following warning: | |||
<pre> | |||
mysql: [Warning] Using a password on the command line interface can be insecure. | |||
or | |||
mysqldump: [Warning] Using a password on the command line interface can be insecure. | |||
</pre> | |||
This typically occurs when using commands like: | |||
<pre> | |||
mysqldump -u USERNAME -p -h 127.0.0.1 --default-character-set=utf8 DATABASE > DATABASE.sql | |||
</pre> | |||
Solution: To resolve this warning and improve security, follow these steps: | |||
# Set up a login path using [https://dev.mysql.com/doc/refman/8.4/en/mysql-config-editor.html mysql_config_editor]: {{kbd | key=<nowiki>mysql_config_editor set --login-path=local --host=localhost --user=root --password</nowiki>}} | |||
# Use the login path when exporting or importing MySQL databases (1) For exporting: {{kbd | key=<nowiki>mysqldump --login-path=local --default-character-set=utf8 DATABASE > DATABASE.sql</nowiki>}} (2) For importing: {{kbd | key=<nowiki>pv DATABASE.sql.gz | gunzip | mysql --login-path=local --default_character_set utf8 --force DATABASE</nowiki>}} | |||
# To view all configured login paths {{kbd | key=<nowiki>mysql_config_editor print --all</nowiki>}} | |||
By using a login path, you avoid exposing your password in the command line, thus resolving the security warning. | |||
=== ERROR 1044 (42000): Access denied for user 'USER'@'localhost' to database 'DATABASE_NAME' === | === ERROR 1044 (42000): Access denied for user 'USER'@'localhost' to database 'DATABASE_NAME' === | ||