Mysql cannot connect to the solution remotely
Preface
Mysql version: 5.7.23
Operating system: Linux
Problem description:
Only through the Linux system account Root command line to enter the database, can not use JDBC, remote connection tool to enter the database.
Error report: ERROR 1698 (28000): Access denied for user 'root'@'localhost'
The obvious problem is that there is no open remote connection authorization, so you can only log in using Linux's Root account.
Resolution proc
1. Find the / etc/mysql/mysql.conf.d/mysqld.cnf file and add skip-grant-tables at the end of [mysqld]
# # The MySQL database server configuration file.## You can copy this to one of:#-"/ etc/mysql/my.cnf" to set global options #-"~ / .my.cnf" to set user-specific options.# # One can use all long options that the program supports.# Run program with-help to get a list of available options and with#-print-defaults to see which it would actually understand and use.## For explanations see# http://dev.mysql.com/doc/mysql/en/server-system-variables.html# This will be passed to all mysql clients# It has been reported that passwords should be enclosed with ticks/quotes# escpecially If they contain "#" chars...# Remember to edit / etc/mysql/debian.cnf when changing the socket location.# Here is entries for some specific programs# The following values assume you have at least 32M r am [mysqld _ safe] socket = / var/run/mysqld/mysqld.socknice = 0 [mysqld] # # * Basic Settings#user = mysqlpid-file = / var/run/mysqld/mysqld.pidsocket = / var/run/mysqld/mysqld.sockport = 3306basedir = / usrdatadir = / var/lib/mysqltmpdir = / tmplc-messages-dir = / content added by usr/share/mysqlskip-external-locking# Enable skip permission check skip-grant-tables## Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address = 127.0.0.1 permission # * Fine Tuning#key_buffer_size = 16Mmax_allowed_packet = 16Mthread_stack = 192Kthread_cache_size = skipping This replaces the startup script and checks MyISAM tables if needed# the first time they are touchedmyisam-recover-options = BACKUP#max_ Connections = 100#table_open_cache = 64#thread_concurrency = 10 years # * Query Cache Configuration#query_cache_limit = 1Mquery_cache_size = 16M## * Logging and Replication## Both location gets rotated by the cronjob.# Be aware that this log type is a performance killer.# As of 5.1 you can enable the log at runtimetries general generalizations logbooks file = / var/log/mysql/mysql.log#general_log = 1percent # Error log- should be very few entries.#log_error = / var/log/mysql/error.log## Here you can see queries with especially long duration#slow_query_log = 1#slow_query_log_file = / var/log/mysql/mysql-slow.log#long_query_time = 2#log-queries-not-using-indexes## The following can be used as easy to replay backup logs or for replication.# note: if you are setting up a replication slave See README.Debian about# other settings you may need to change.#server-id = 1#log_bin = / var/log/mysql/mysql-bin.logexpire_logs_days = 10max_binlog_size = 100M#binlog_do_db = include_database_name#binlog_ignore_db = include_database_name## * InnoDB## InnoDB is enabled by default with a 10MB datafile in / var/lib/mysql/.# Read the manual for more InnoDB related options. There are manybirds # * Security Features## Read the manual, too, if you want chrootones # chroot = / var/lib/mysql/## For generating SSL certificates I recommend the OpenSSL GUI "tinyca". # # ssl-ca=/etc/mysql/cacert.pem# ssl-cert=/etc/mysql/server-cert.pem# ssl-key=/etc/mysql/server-key.pem
After saving, restart the service sudo service mysql restart.
two。 Enter mysql database without verification to modify root account information in user table, flush privileges
Ckmike@ckmikePC:~$ mysqlWelcome to the MySQL monitor. Commands end with; or\ g.Your MySQL connection id is 2Server version: 5.7.23-0ubuntu0.18.04.1 (Ubuntu) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or'\ h' for help. Type'c'to clear the current input statement.mysql > use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with-ADatabase changedmysql > update mysql.user set authentication_string=password ('account password') where user='root';Query OK, 0 rows affected, 1 warning (0.03 sec) Rows matched: 3 Changed: 0 Warnings: 1mysql > update user set plugin= "mysql_native_password"; Query OK, 1 row affected (0.00 sec) Rows matched: 7 Changed: 1 Warnings: 0mysql > flush privileges Query OK, 0 rows affected (0.00 sec) mysql > quitBye
3./etc/mysql/mysql.conf.d/mysqld.cnf file. Remove skip-grant-tables and enable check.
4. Restart the service
Sudo service mysql restart; is done at this point, and you can log in using both jdbc and non-Linuxroot accounts.