小墨の博客

梦想需要付诸行动,否则只能是梦

ubuntu系统使用apt安装的MySQL数据库,无法远程访问的几种可能问题

安装MySQL数据库后一般会遇到远程计算机不能连接的问题,具体问题需要我们排查。

可能一:MySQL数据库是否提供了外部访问的用户以及权限?

可能二:MySQL的配置文件是否只绑定了本机ip?(ubuntu下:/etc/mysql/mysql.conf.d/mysqld.cnf

可能三:操作系统的防火墙不允许外部访问3306端口


本文环境:Ubuntu 22.04,MySQL 8.0.32(通过 apt 安装)。

# 通过 apt 安装 mysql
sudo apt list | grep mysql-server
sudo apt install mysql-server



排查一:在安装了MySQL数据库的计算机上,命令行进入MySQL

mysql -u root -p
# 可能需要在前面加上 sudo

执行语句:

use mysql;
select user, host from user;


如果 root 用户的 host 为 localhost,则说明没有设定外部访问的用户,接下来我们给root用户赋予外部访问的权限,执行2条语句:

update user set host = '%' where user ='root';

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
# MySQL赋权报错 参考:https://blog.csdn.net/weixin_44455388/article/details/119681517
# 原因:高版本的MySQL把将创建账户和赋予权限分开了
# 创建账户
# create user 'root'@'%' identified by '123456';
# 修改账户
# alter user 'root'@'%' identified by '123456';
# 此时还是不能使用Navicat登录,因为mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是 caching_sha2_password,所以需要按照下面的步骤修改登录用户的加密规则:
# 参考:https://blog.csdn.net/CaiSenNan/article/details/119823608
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'  PASSWORD EXPIRE NEVER;
# 赋予权限
grant all privileges on *.* to 'root'@'%' with grant option;

flush privileges;

注意 123456 是你给 root 设定的密码,注意拼写,一切ok后再次查看 user 表内的内容


这里解释一下grant语句格式

grant 权限1,权限2,…权限n on 数据库名.表名 to 用户名@用户地址 identified by ‘用户密码’ with grant option;

权限1,权限2,…代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等权限。

如果是all privileges或者all,表示赋予用户全部权限。

如果数据库名.表名被*.*代替,表示赋予该用户可以操作服务器上所有数据库所有表的权限。

用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用'%'表示从任何地址。

'用户密码'必须提供。

最后的 with grant option 表示权限传递,意思是允许该用户将其权限分配给其他人。



排查二:配置文件是否只绑定了本机ip

使用gedit文本编辑器打开mysql的配置文件,把bind-address = 127.0.0.0这行注释掉(句首加上#),当然,也可以绑定你所需的主机,ubuntu终端执行:

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

保存退出,重启mysql(systemctl restart mysql)。

重启后可以使用 netstat -an|grep 3306 命令来查看端口情况


排查三:关于操作系统的防火墙不允许外部访问3306端口

根据操作系统自行排查


本文参考:https://www.shuzhiduo.com/A/Gkz17MDQ5R/

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:507
    • 页面总数:20
    • 分类总数:92
    • 标签总数:207
    • 评论总数:60
    • 浏览总数:219202

    | | |
    | |  Z-Blog PHP