mysql-fqa.png

安装不在讨论范围

Q1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解析的地方有两处:①Access denied(拒绝访问);②using password:NO/YES

1.解决方案: 找到/etc/mysql/mysql.conf.d/mysqld.cnf文件 输入命令vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]后添加skip-grant-tables

[mysqld]
skip-grant-tables

(使用 set password for设置密码无效,且此后登录无需键入密码)

重启MySQL服务器 service mysql restart 登录MySQL服务器

    mysql> use mysql;
    mysql> select User from user;  #此处为查询用户命令
    mysql> update user set password=password("你的新密码") where user="用户名"
    mysql> flush privileges;  #立即生效
    mysql> quit;

Q2 ERROR 1054(42S22) Unknown column 'password' in ‘field list’

当你修改密码数可以会出现报错:ERROR 1054(42S22) Unknown column 'password' in ‘field list’
1.错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

2.将上述命令:

    mysql> update user set password=password("你的新密码") where user="用户名"

改成:

    mysql> update mysql.user set authentication_string=password('你的新密码') where user='用户名; #修改密码成功

其他命令一样按照顺序输入即可

Q3 mysql:1130 - Host '1.1.1.1'is not allowed to connect to this MariaDB server

没有远程登录权限

则需要

  • 登录mysql

  • 修改mysql库中的user表:(”%”表示root可以由任意主机登录Mysql)执行下列命令:
    mysql 1130.png

          mysql -u root -p
          use mysql;
          grant all privileges  on *.* to root@'%' identified by "password";
          flush privileges;
          exit;

    password记得替换自己的密码

或者
mysql 1130-1.png

  • 退出登录Mysql,重启Mysql服务

      service MySQL restart   

别忘了;

Q4 2003: Can't connect to MySQL server on '192.168.1.20' (10060"Unknown error")

  1. 如 AWS、腾讯云、阿里云等添加安全组放行端口(略)

  2. iptables 放行端口

     iptables -I INPUT -p tcp --dport 3306 -j ACCEPT