Mysql无法远程连接解决方案
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,前言Mysql 版本:5.7.23操作系统:Linux问题描述:只能通过Linux系统账号Root命令行进入数据库,无法使用JDBC,远程连接工具进入数据库。报错:ERROR 1698 (28000)
千家信息网最后更新 2026年11月01日Mysql无法远程连接解决方案
前言
Mysql 版本:5.7.23
操作系统:Linux
问题描述:
只能通过Linux系统账号Root命令行进入数据库,无法使用JDBC,远程连接工具进入数据库。
报错:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
这个问题明显就是没有开放远程连接授权,所以导致只能使用Linux的Root账号登录。
解决流程
1.找到/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]最后面加skip-grant-tables
## 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 ram[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 = /usr/share/mysqlskip-external-locking# 加入的内容,开启跳过权限校验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## * Fine Tuning#key_buffer_size = 16Mmax_allowed_packet = 16Mthread_stack = 192Kthread_cache_size = 8# 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## * 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 runtime!#general_log_file = /var/log/mysql/mysql.log#general_log = 1## 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 many!## * Security Features## Read the manual, too, if you want chroot!# 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保存后,重启服务sudo service mysql restart.
2.无验证进入mysql数据库修改user表中root账号信息,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('账号密码') 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> quitBye3./etc/mysql/mysql.conf.d/mysqld.cnf文件,去掉skip-grant-tables,开启校验
4.重启服务
sudo service mysql restart;至此就搞定了,使用jdbc、非Linuxroot账号都可以登录了。
账号
数据
数据库
文件
系统
问题
服务
登录
明显
操作系统
信息
内容
前言
命令
密码
就是
工具
权限
流程
版本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
河南云网互联网络科技有限公司
山东特亿宝互联网科技有限公司
互联网科技财经
互联网核心科技是什么
互联网下的科技发展
金融科技 互联网金融
互联网金融科技创新
新浪科技互联网
济南华为互联网科技产业总部基地
栖莱科技互联网股份有限公司
互联网校园科技培训
晋城互联网科技
爱医互联网络科技
锡山区互联网智能科技产品供应
广东工业互联网大赛深圳学泰科技
郑州欣桑互联网科技有限公司
互联网硬科技公司
西安有哪些互联网高科技企业
知域互联网科技有限公司官网
互联网金融监管科技数据
工业互联网科技新基建
花神(南京)互联网科技有限公司
国大互联网教育科技有限公司薪资
上海钢联属于互联网科技股吗
互联网营销推广黑科技
新氧科技和美国互联网有关系吗
黑龙江互联网科技公司
青岛互联网科技园
伍佰万互联网科技是干嘛的