search
HomeDatabaseMysql Tutorialwindowslinux下安装mysql报1045等错误_MySQL

以前在windows 下安装mysql 没怎么出现过问题,而在linux下安装的时候出现了一些问题,昨天在windows 安装的时候也出现了1045 错误,就个人经历来看这个问题就是 root用户密码的问题,所以将解决的方式总结如下:

一、mysql登录报 1045 错误

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

我们看到上面的这个错误就是说 user 为root host为localhost的密码有问题,所以我们就要看看 mysql数据库中user表中user为root,host为localhost的这个用户的密码。

解决办法:破解mysql密码

1、 service mysqld stop

// 停止mysql服务

2、mysqld_safe --skip-grant-tables

// 在mysql的配置文件如果是linux(centos)则在etc/my.cnf配置文件的mysqld_safe 下天添加skip-grant-tables,如果在windows下则在安装目录下的my.ini 配置文件的mysqld 下添加 skip-grant-tables, skip-grant-tables是跳过授权表,这样配置之后保存 关闭,重新启动mysql服务

3、 mysql -uroot -p 回车

// 这样就进来了,这里有两个问题,也是我遇到的两种情况,一种是user表中有user为root的用户,一种是没有,如果有则进行如下处理:

(1)、use mysql;

// 使用mysql数据库

(2)、 delete from user where host="localhost" and user=" ";

// 将host为localhost下的user为空的用户都删了,其实也可以把这里localhost改成 % 免得以后连接的时候连接不了,不过是后话在这里该不该都可以。

(3)、 update user set password=PASSWORD("newpass") where user="root";
// 如果你查询一下你会发现 mysql中的密码是加密保存的,所以修改密码不能向平时的sql一样 而要使用password("新密码")关键字来修改密码,新密码为password中的字符。

(4)、 flush tables;

//数据刷到磁盘


(5)、 flush privileges;

//更新权限

(6)、quit

//退出

(7)、将配置文件中 skip-grant-tables 注释/删掉 保存

(8)、service mysqld restart

// 再次启动服务 mysql -uroot -p新密码回车 ,这样应该可以了

二、 接着上面3、mysql -uroot -p 回车 进入之后use表中没数据,即创建root用户做如下处理:

第一种情况,就是user中有root用户但是连接不上是在windows下遇到的,而user中什么都没有是在linux(centos) 下遇到的,具体处理如下:

在linux下安装了mysql之后出现错误,刚开始以为就是第一种这种情况,网上大多也都是这类文章于是就按照这篇文章进行了修改:linux下mysql 初次登陆修改密码 修改之后应该没错,但再次启动服务root登录还是不行,下面的就是出现的问题和解决过程:

1、查询看有没有user 为root的用户,或这说user中有没有用户。

mysqld_safe--skip-grant-tables&mysql-uroot mysql
mysql> select * from user;
Empty set (0.00 sec)
mysql> select USER();
+--------+
| USER()|
+--------+
| root@ |
+--------+
1 row in set (0.00 sec)

结果是没有root用户,user表里面是空的,还是第一次遇到这种问题的。

2、插入用户信息到 user表
由于 mysqld_safe --skip-grant-tables里面是不能用grant的,于是想到了手动insert插入root用户:

**为了大家方便这里提供一些说明:第一个值是host,第二个为user这两项是必填项,password("my_password")这里进行密码的设置,MY_PASSWORD 就是新设的密码 ,而'Y'有28个,之后有1个enum和3个blob 可以为空,也就是这里的4个空字符,int类型有4个,默认值为0

INSERTINTO user VALUES('%','root',password('MY_PASSWORD'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0)

这里要主要的是第3个字段密码处要用password('密码'),因为mysql中密码是要经过编码的,不是直接字符串保存的。

3、接着在杀掉所有mysql进程,之后正常重启mysql,即可用root用户登录

到目前个人就遇到的问题总的就这两种,希望对你有用!!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How do you handle database upgrades in MySQL?How do you handle database upgrades in MySQL?Apr 30, 2025 am 12:28 AM

The steps for upgrading MySQL database include: 1. Backup the database, 2. Stop the current MySQL service, 3. Install the new version of MySQL, 4. Start the new version of MySQL service, 5. Recover the database. Compatibility issues are required during the upgrade process, and advanced tools such as PerconaToolkit can be used for testing and optimization.

What are the different backup strategies you can use for MySQL?What are the different backup strategies you can use for MySQL?Apr 30, 2025 am 12:28 AM

MySQL backup policies include logical backup, physical backup, incremental backup, replication-based backup, and cloud backup. 1. Logical backup uses mysqldump to export database structure and data, which is suitable for small databases and version migrations. 2. Physical backups are fast and comprehensive by copying data files, but require database consistency. 3. Incremental backup uses binary logging to record changes, which is suitable for large databases. 4. Replication-based backup reduces the impact on the production system by backing up from the server. 5. Cloud backups such as AmazonRDS provide automation solutions, but costs and control need to be considered. When selecting a policy, database size, downtime tolerance, recovery time, and recovery point goals should be considered.

What is MySQL clustering?What is MySQL clustering?Apr 30, 2025 am 12:28 AM

MySQLclusteringenhancesdatabaserobustnessandscalabilitybydistributingdataacrossmultiplenodes.ItusestheNDBenginefordatareplicationandfaulttolerance,ensuringhighavailability.Setupinvolvesconfiguringmanagement,data,andSQLnodes,withcarefulmonitoringandpe

How do you optimize database schema design for performance in MySQL?How do you optimize database schema design for performance in MySQL?Apr 30, 2025 am 12:27 AM

Optimizing database schema design in MySQL can improve performance through the following steps: 1. Index optimization: Create indexes on common query columns, balancing the overhead of query and inserting updates. 2. Table structure optimization: Reduce data redundancy through normalization or anti-normalization and improve access efficiency. 3. Data type selection: Use appropriate data types, such as INT instead of VARCHAR, to reduce storage space. 4. Partitioning and sub-table: For large data volumes, use partitioning and sub-table to disperse data to improve query and maintenance efficiency.

How can you optimize MySQL performance?How can you optimize MySQL performance?Apr 30, 2025 am 12:26 AM

TooptimizeMySQLperformance,followthesesteps:1)Implementproperindexingtospeedupqueries,2)UseEXPLAINtoanalyzeandoptimizequeryperformance,3)Adjustserverconfigurationsettingslikeinnodb_buffer_pool_sizeandmax_connections,4)Usepartitioningforlargetablestoi

How to use MySQL functions for data processing and calculationHow to use MySQL functions for data processing and calculationApr 29, 2025 pm 04:21 PM

MySQL functions can be used for data processing and calculation. 1. Basic usage includes string processing, date calculation and mathematical operations. 2. Advanced usage involves combining multiple functions to implement complex operations. 3. Performance optimization requires avoiding the use of functions in the WHERE clause and using GROUPBY and temporary tables.

An efficient way to batch insert data in MySQLAn efficient way to batch insert data in MySQLApr 29, 2025 pm 04:18 PM

Efficient methods for batch inserting data in MySQL include: 1. Using INSERTINTO...VALUES syntax, 2. Using LOADDATAINFILE command, 3. Using transaction processing, 4. Adjust batch size, 5. Disable indexing, 6. Using INSERTIGNORE or INSERT...ONDUPLICATEKEYUPDATE, these methods can significantly improve database operation efficiency.

Steps to add and delete fields to MySQL tablesSteps to add and delete fields to MySQL tablesApr 29, 2025 pm 04:15 PM

In MySQL, add fields using ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column, delete fields using ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop. When adding fields, you need to specify a location to optimize query performance and data structure; before deleting fields, you need to confirm that the operation is irreversible; modifying table structure using online DDL, backup data, test environment, and low-load time periods is performance optimization and best practice.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor