ubuntu24.04配置mysql 并解决ERROR 2002: Can‘t connect to local MySQL 的 ‘/tmp/mysql.sock‘问题【最简单做法】

目录

起因

sock连接报错:(需要root):

tcp连接不知道root账户密码:

网络上的方法过于繁杂、不起效果:​编辑

无法连接远程访问:ERROR 2003(111)、1045错误

推荐更改软件源,本次安装也是基于该软件源

切换为root用户

解决sock连接问题

查找sock文件

编辑mysql配置文件

保存后重启服务

本地连接成功!

修改本地连接密码

成功本地连接(无root)

修改配置使其能被局域网访问

预操作

通过“ifconfig”查看本机ip地址

开放数据库端口(默认)“3306”(root)

修改配置文件

查看是否允许通过tcp连接数据库(默认,可不操作该步骤)

新建专属用户允许访问某个数据库(推荐)

root开启远程访问


起因

sock连接报错:(需要root):

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

tcp连接不知道root账户密码:

想到可以不使用sock连接,直接使用tcp连接,但又不知道初始密码,也不是空密码

网络上的方法过于繁杂、不起效果:

无法连接远程访问:ERROR 2003(111)、1045错误

ERROR 2003 (HY000): Can't connect to MySQL server on '10.111.11.111:3306' (111)

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


推荐更改软件源,本次安装也是基于该软件源

打开“软件与更新”

【下载自】-》【其它】-》选择阿里源

apt update
apt install mysql-server
mysql --version

切换为root用户

重启服务、配置文件都需要root,建议使用root用户(exit命令退出)

解决sock连接问题

查找sock文件

 find / -name '*.sock' 
# 注意有些教程说找'mysql.sock'是不正确的,因为发现搜索结果是'mysqld.sock'
# 位置在'/run/mysqld/mysqld.sock',大家可以确认是否存在该文件,存在的话直接使用

编辑mysql配置文件

vim /etc/my.cnf

保存后重启服务

systemctl restart mysql

本地连接成功!

修改本地连接密码

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
exit;

成功本地连接(无root)

修改配置使其能被局域网访问

预操作

通过“ifconfig”查看本机ip地址

内网地址为:

  • 10.0.0.0 到 10.255.255.255 (10.0.0.0/8)
  • 172.16.0.0 到 172.31.255.255 (172.16.0.0/12)
  • 192.168.0.0 到 192.168.255.255 (192.168.0.0/16)

开放数据库端口(默认)“3306”(root)

修改配置文件

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

重启服务

systemctl restart mysql

查看是否允许通过tcp连接数据库(默认,可不操作该步骤)

进入mysql命令行

SHOW VARIABLES LIKE 'skip_networking';
quit

配置正确

新建专属用户允许访问某个数据库(推荐)

CREATE USER 'new_user'@'%' IDENTIFIED BY 'new_password';
GRANT ALL PRIVILEGES ON healthy_platform.* TO 'new_user'@'%';
FLUSH PRIVILEGES;

连接成功

root开启远程访问(不推荐,一旦泄漏影响整个数据库)

有bb应该发现了,当时配置root的时候使用的可访问地址设置为了“localhost”

现在只需要把它改成'%'就可以了

use mysql;
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
flush privileges;

连接成功!

参考文章:
MySQL 连接错误 111:无法连接到 MySQL 服务器

Ubuntu MySQL解决ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘的问题

linux下mysql配置文件my.cnf最详细解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值