最近在部署项目,由于之前是在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步骤的用户名和密码替换为你的用户名和密码即可。

Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

Zu den Schritten zum Erstellen einer MySQL -Datenbank gehören: 1. Erstellen einer Datenbank und Tabelle, 2. Daten einfügen, und 3. Durchführen von Abfragen. Verwenden Sie zunächst die Anweisungen für erstellte und creatEtable, um die Datenbank und Tabelle zu erstellen, und verwenden Sie dann die Anweisung InsertInto, um die Daten einzulegen, und verwenden Sie schließlich die Auswahlanweisung, um die Daten abzufragen.

MySQL ist für Anfänger geeignet, da es einfach zu bedienen und leistungsfähig ist. 1.Mysql ist eine relationale Datenbank und verwendet SQL für CRUD -Operationen. 2. Es ist einfach zu installieren und erfordert, dass das Stammbenutzerkennwort konfiguriert wird. 3.. Verwenden Sie Einfügen, Aktualisieren, Löschen und Wählen Sie, um Datenvorgänge auszuführen. 4. OrderBy, wo und Join kann für komplexe Abfragen verwendet werden. 5. Debugging erfordert die Überprüfung der Syntax und verwenden Sie Erklärungen zur Analyse der Abfrage. 6. Die Optimierungsvorschläge umfassen die Verwendung von Indizes, die Auswahl des richtigen Datentyps und der guten Programmiergewohnheiten.

MySQL ist für Anfänger geeignet, weil: 1) Einfach zu installieren und konfigurieren, 2) Rich Learning Resources, 3) Intuitive SQL -Syntax, 4) leistungsstarke Toolunterstützung. Anfänger müssen jedoch Herausforderungen wie Datenbankdesign, Abfrageoptimierung, Sicherheitsmanagement und Datensicherung überwinden.

Ja, sqlisaprogrammingLuagespezialisierteForDatamanagement.1) Es ist dieklarativ, fokussierte Waagewhattoachieveratherthanhow.2)

Säureattribute umfassen Atomizität, Konsistenz, Isolation und Haltbarkeit und sind der Eckpfeiler des Datenbankdesigns. 1. Atomizität stellt sicher, dass die Transaktion entweder vollständig erfolgreich oder vollständig gescheitert ist. 2. Konsistenz stellt sicher, dass die Datenbank vor und nach einer Transaktion konsistent bleibt. 3. Isolation stellt sicher, dass sich Transaktionen nicht stören. 4. Persistenz stellt sicher, dass Daten nach der Transaktionsuntersuchung dauerhaft gespeichert werden.

MySQL ist nicht nur ein Datenbankverwaltungssystem (DBMS), sondern auch eng mit Programmiersprachen zusammen. 1) Als DBMS wird MySQL verwendet, um Daten zu speichern, zu organisieren und abzurufen und Indizes zu optimieren, können die Abfrageleistung verbessern. 2) Kombinieren Sie SQL mit Programmiersprachen, eingebettet in Python, und unter Verwendung von ORM -Tools wie SQLalchemy kann die Operationen vereinfachen. 3) Die Leistungsoptimierung umfasst Indexierung, Abfrage, Caching, Bibliothek und Tabellenabteilung und Transaktionsmanagement.

MySQL verwendet SQL -Befehle, um Daten zu verwalten. 1. Grundlegende Befehle umfassen Auswahl, Einfügen, Aktualisieren und Löschen. 2. Die erweiterte Verwendung umfasst die Funktionen, Unterabfragen und Aggregate. 3. Häufige Fehler sind Syntax-, Logik- und Leistungsprobleme. 4. Die Optimierungstipps umfassen die Verwendung von Indizes, die Vermeidung von Auswahl* und die Verwendung von Limit.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools