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

目录

起因

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

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

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

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

(非必选)推荐更改软件源,本次安装也是基于该软件源

切换为root用户

解决sock连接问题

查找sock文件

编辑mysql配置文件

保存后重启服务

本地连接成功!(到这里问题已经解决了)

(罕见错误)连接失败:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)

修改本地连接密码

成功本地连接(无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
systemctl is-enabled mysql

# 如果不是enable请使用 systemctl命令开启
sudo systemctl enable mysql

切换为root用户

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

解决sock连接问题

(直接通过sudo mysql可以连接请忽略该步骤,该步骤为解决报错ERROR 2002: Can‘t connect to local MySQL 的 mysql.sock继)

查找sock文件

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

编辑mysql配置文件

vim /etc/my.cnf

保存后重启服务

systemctl restart mysqld

本地连接成功!(到这里问题已经解决了)

(罕见错误)连接失败:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)

重启服务(不管有没有出错):

systemctl restart mysql

发现本地无“/run/mysqld/mysqld.sock”

重新运行find命令(暂时不清楚原理,即可重新出现)

修改本地连接密码

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

成功本地连接(允许无root)

mysql -uroot -h 127.0.0.1 -p
# “-u” 指定用户名(这里是 “root”)
# “-h” 指定主机地址(这里是 “127.0.0.1” 表示本地主机)
# “-p” 表示提示输入密码

# 退出mysql命令行
exit;

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

预操作

通过“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、付费专栏及课程。

余额充值