最近在部署项目,由于之前是在windows做的开发,部署却是在linux下,吃了不少跨平台的亏,比如今天才发现linux下mysql的表名是严区分大小写的。这次是另一个坑,在tomcat连接mysql的时候,报错Access denied for user 'xxx'@'localhost.localdomain' (using
最近在部署项目,由于之前是在windows做的开发,部署却是在linux下,吃了不少跨平台的亏,比如今天才发现linux下mysql的表名是严格区分大小写的。这次是另一个坑,在tomcat连接mysql的时候,报错Access denied for user 'xxx'@'localhost.localdomain' (using password: YES))。
之前也遇到过类似的问题,不过是在windows下,而且错误信息有点区别,是Access denied for user 'xxx'@'localhost' (using password: YES)),排查结果就是缓存没清,实际用来连接数据库的用户名和密码与配置文件中的不一致,这种原因的排查只需要把用来连接数据库的用户名和密码打印一次就可以了,此处不表。但是,这次并不是这个原因造成的,用户名和密码没有错误。
排查过程:
先用root用户登录mysql,然后执行下列语句查询mysql的全部用户,观察结果,这有助于你对后续内容的理解:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
你会看到,即便是相同的用户名,也会有不同的@host后缀,这里指的是同一个用户在不同的主机上的登录,@host指的是主机
这里注意报错的是Access denied for user 'xxx'@'localhost.localdomain' (using password: YES))而不是Access denied for user 'xxx'@'localhost' (using password: YES)),差了一个localdomain还是有很大区别的。这就牵扯到了localhost和127.0.0.1(localhost.localdomain)的区别。
我们直接在命令行以“mysql -u用户名 -p密码”的形式登录mysql数据的时候,并没有使用tcp/ip连接,mysql会认为连接来自localhost,因此实际登录的是xxx@localhost。但是,在linux中,用tomcat连接数据库的时候(我在windows下不会这样,不知道为何),使用了tcp/ip,主机被判定为来自127.0.0.1,那么实际登录的就是 xxx@localhost.localdomain,那么你用xxx@localhost的密码去验证xxx@localhost.localdomain当然只能被判定为拒绝连接。
解决方法:
1.创建一个新的用户并授权其访问指定数据库的权限。这里我指定了主机为localhost.localdomain,意味允许用户名为snow的用户,以密码123在localhost.localdomain的主机上连接数据库;注意这个指定主机localhost.localdomain很关键。
GRANT USAGE ON *.* TO 'snow'@'localhost.localdomain' IDENTIFIED BY '123' WITH GRANT OPTION;
2.位该新用户赋予操作数据库exampleDB的全部权限。
grant all privileges on exampleDB.* to snow@localhost.localdomain identified by '123';
3.更新权限表
flush privileges;
然后把代码中连接的用户名改为snow,密码改为123。,问题解决,成功连接上mysql了。
当然你也可以不改代码中的用户名和密码,只需将上述第1,2步骤的用户名和密码替换为你的用户名和密码即可。

Access 验证规则是一种数据验证工具,用于确保数据符合特定条件,防止输入无效数据。设置验证规则的步骤:1. 选择要设置验证规则的字段;2. 打开“字段属性”对话框并切换到“查找”选项卡;3. 在“验证规则”字段中输入验证规则;4. 在“验证文本”字段中输入不符合规则时的错误消息;5. 单击“确定”保存更改。

microsoft access是由微软发布的关系数据库管理系统;它结合了MicrosoftJet Database Engine和图形用户界面两项特点,是Microsoft Office的系统程序之一。

access和trunk端口的区别:1、Access端口用于连接终端设备,提供单个VLAN的接入,而Trunk端口用于连接交换机之间,提供多个VLAN的传输;2、Access端口只传输属于指定VLAN的数据,而Trunk端口可以传输多个VLAN的数据,并使用VLAN标签进行区分。

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。详细介绍:1、引用必要的命名空间,在VB项目中,首先需要引用“System.Data`和`Microsoft.Office.Interop.Access”命名空间,以便使用ADO.NET和Access相关的类和方法,可以在VB项目的引用中添加这些命名等等。

将 Excel 数据导入 Access 的步骤:1. 打开 Access 数据库。2. 创建链接的表,选择 Excel 工作簿。3. 选择 Excel 表格。4. 映射字段。5. 选择数据选项。6. 导入数据。7. 管理链接的数据。

Access 数据库文件的扩展名为 .accdb,自 Microsoft Access 2007 起开始使用,用于识别包含结构化数据的容器文件,如表、查询和窗体。

Microsoft Access 是一款关系型数据库管理系统 (RDBMS),用于存储、管理和分析数据。它主要用于数据管理、导入/导出、查询/报表生成、用户界面设计和应用程序开发。Access 优势包括易用性、集成数据库管理、强大灵活、与 Office 集成和可扩展性。

在 Access SQL 中,使用 FORMAT 函数,并将格式指定为 "00",可以将数字 1 显示为文本格式 "01"。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
