专栏首页侯哥的Python分享python数据库-MySQL安装问题总结(48)

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

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

我的操作系统是ubuntu:

我的MySQL版本是:

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

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

第一步

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

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

进入到配置文件,然后在这个配置文件中的[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;

第三步

重新进入到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这句话注释上

这个问题就解决了

三、ERROR 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进行监听。

四、ERROR 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、还有就是密码错误,重新输入密码试试

五、ERROR 1130 (HY000): Host '192.168.100.102' is not allowed to connect to this MySQL server

  问题原因:mysql服务器出于安全考虑,默认只允许本地登录数据库服务器。

  问题解决:登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%",然后重启mysql这样就允许所有的远程机器进行访问了。

步骤1:修改mysql表

mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>flush privileges;
mysql>select host, user from user;

mysql>quit

步骤2:重启mysql

service mysql restart

这个问题就解决了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python部署-nginx部署带docker的https请求

    首先例如使用https://www.Se7eN_HOU.com进行首页访问,首先会先进入到主服务器里面,经过主服务器的Nginx Web服务器,进行web服务。...

    Se7eN_HOU
  • python数据库-数据库的介绍及安装(47)

      数据库(Database)是存储与管理数据的软件系统,就像一个存入数据的物流仓库。每个数据库都有一个或多个不同的API接口用于创建,访问,管理,搜索和复制所...

    Se7eN_HOU
  • python数据库-MySQL数据库高级查询操作(51)

      这里面学科包含了三个学科,所以学科拆分为:语文学科、数学学科、英语学科,同样的成绩也要拆分为语文成绩、数学成绩、英语成绩。这样既满足了第一范式,各列可以设计...

    Se7eN_HOU
  • linux下使用yum安装mysql

                # yum install -y mysql-server

    帘卷西风
  • 基于Linux安装Mysql5.7

    可能会如下报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket...

    黎明大大
  • SpringBoot+Mysql8实现读写分离

    在实际的生产环境中,为了确保数据库的稳定性,我们一般会给数据库配置双机热备机制,这样在master数据库崩溃后,slave数据库可以立即切换成主数据库,通过主从...

    JAVA日知录
  • MySQL配置主从复制

    参考如下几篇博客:1:https://stackoverflow.com/questions/2995054/access-denied-for-user-ro...

    用户5927264
  • mysql 远程连接数据库的二种方法

    架构师专栏
  • Mysql免安装配置教程(图文版)

    Mysql免安装版配置教程 图文版 配置环境变量 ? 新建一个my.ini文件,添加下面内容 [mysqld] basedir=C:\\soft...

    Java3y
  • Linux安装mysql方法二

    用户1437675

扫码关注云+社区

领取腾讯云代金券