python数据库-安装问题总结(48)

本文总结了在Ubuntu环境下遇到的MySQL错误,包括ERROR 1698、ERROR 1524、2003和1045,并提供了详细的解决步骤。例如,通过修改配置文件、重置密码、检查网络连接和端口设置等方法来恢复数据库的正常访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ERROR 1698(28000):Access denied for user root@localhost错误

我的操作系统是ubuntu:

我的MySQL版本是:

安装完成后,登录mysql的时候就出现了如下错误:

因为安装的过程中没让设置密码,可能密码为空,但无论如何都进不去mysql。那么该怎么做呢

第一步

在ubuntu的terminal(也即终端)上输入

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
PYthon学习企鹅裙:88198-2657  领取python自动化编程资料教程

进入到配置文件,然后在这个配置文件中的 [mysqld] 这一块中加入skip-grant-tables这句话。 

作用:就是让你可以不用密码登录进去mysql。

保存:wq,退出。输入:service mysql restart,重新启动mysql。 

第二步

在终端上输入 mysql -u root -p ,遇见输入密码的提示直接回车即可,进入mysql

然后分别执行下面四句话:

1 use mysql;   然后敲回车
2 update user set authentication_string=password("你的密码") where user="root";  然后敲回车
3 flush privileges;  然后敲回车
4 quit;
PYthon学习企鹅裙:88198-2657  领取python自动化编程资料教程

第三步

重新进入到mysqld.cnf文件中去把刚开始加的skip-grant-tables这条语句给注释掉。

再返回终端输入 mysql -u root -p ,应该就可以进入数据库了。

二、ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded

如果出现这个问题,还是需要像上个问题一样,先把MySQL设置成无密码状态,也就是把上个问题中的第三步注释的

skip-grant-tables

这句话在去掉注释,让它重新起效,并且还要重启MySQL服务

service mysql restart

起效后输入下面这两行命令

1、use mysql;
2、select user,plugin from user;

从图中可以看到在执行了 select user,plugin from user; 后,错误原因是因为 plugin root 的字段是 auth_socket ,那我们改掉它为下面的 mysql_native_password 就行了。输入:

update user set authentication_string=password("123456"),plugin='mysql_native_password' where user='root';

然后回车执行以下,再输入 select user,plugin from user; 回车,我们能看到root用户的字段改成功了。

最后quit退出。再把 skip-grant-tables 这句话注释上

这个问题就解决了

三、2003 - Can't connect to MySQL server on '192.168.100.109' (61 "Connection refused")

问题分析:

1、可能是网络连接问题。

解决方案:如果能ping 192.168.100.109,能ping通,则排除此情况。

2. 可能由于192.168.100.109主机上的my.cnf里配置了skip_networking。

如果配置了skip_networking, 这就意味着MySQL只能通过本机Socket连接(socket连接也是本地连接的默认方式),放弃对TCP/IP的监听   当然也不让本地程序连接MySQL(Connector/只能通过TCP/IP来连接)。

解决方案:还是使用命令 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 进入到mysqld.cnf文件中,如果有 skip_networking,注释掉就行了

3、可能由于192.168.100.109主机上的my.cnf里配置了bind_address=127.0.0.1,只允许本地socket连接

解决方案:也是使用命令 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf  进入到mysqld.cnf文件中,如果有bind_address=127.0.0.1 ,注释掉就行了

4、还有可能是用户名和密码输入错误

解决方案:重新输入一下用户名和密码

5、还有可能是port端口的问题

解决方案:有可能192.168.100.109的主机上的MySQL port不是默认3306, 这样我远程连接时,没有指定--port,用的是3306, 而192.168.100.109上没有对3306进行监听。

四、1045 - Access denied for user 'root'@'localhost' (using password: YES)

出现access denied的原因有如下可能:

    1.  mysql的服务器停止
    2.   用户的端口号或者IP导致  
    3.   mysql的配置文件错误----my.ini等文件
    4.   root用户的密码错误

1、若MySQL已经没有启动,重启MySQL服务器即可

2、若用户的端口号与IP(3306/3307)不一致:

3、要是mysql的配置文件错误,只需要将init文件停止,在重启一下即可

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

4、还有就是密码错误,重新输入密码试试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值