Mysql安装包方式安装,解决mysqld.sock无法连接

MySQL安装包方式安装

完美解决 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
适用于WSL,WSL2
如只为解决以上问题可直接看最后一点
环境:wsl2 的 centos7
前期准备:下载好的安装包,我这里用的是 mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
1. 用户准备
  • 新增mysql组
groupadd mysql
  • 新增 mysql用户
useradd -m mysql -g mysql
  • 设置密码
passwd 123
2. 开始安装
  • 切换mysql用户
su - mysql
  • 创建MySQL安装目录
mkdir /home/mysql/setup
  • 创建MySQL文件目录
mkdir /home/mysql/setup/data
  • 上传安装包至 /home/mysql/setup,并解压
tar -zxf /home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
  • 进入bin目录
cd /home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/bin
  • 关联data目录
./mysqld --initialize --basedir=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/ --datadir=/home/mysql/setup/data/
  • 上一步会输出MySQL的root账户初始密码:

A temporary password is generated for root@localhost: et:tytrrJuoi

  • 创建并编辑配置文件 my.cnf
vi /home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/my.cnf
  • 复制以下配置并保存
[mysqld]
datadir=/home/mysql/setup/data
socket=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/mysql.sock
basedir=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64
user=mysql
wait_timeout=388000
interactive_timeout=388000
event_scheduler=ON
port=3306
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysqld_safe]
log-error=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/log/mysql.log
#pid-file=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/mysql.pid

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
  • 创建log目录
mkdir /home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/log
  • 启动mysql
./mysqld_safe --defaults-file=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/my.cnf --user=mysql &
  • 创建软连接
ln -s /home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/mysql.sock /tmp/mysql.sock
  • 打开mysql客户端,修改密码,初始密码已在前面的步骤中获得
./mysql -uroot -p
  • 修改密码,刷新
alter user user() identified by "root";
use mysql;
update user set authentication_string=password('root') where user='root';
flush privileges;
exit;
  • kill掉占用3306的进程,重启mysql
./mysqld_safe --defaults-file=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/my.cnf --user=mysql &
  • 进入mysql命令行
./mysql -uroot -proot
3. 后续操作
  • 修改用户的环境变量(也可以直接修改root账户的)
vi ~/.bash_profile
  • 追加如下内容至 .bash_profile 末尾
export PATH=$PATH:/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/bin
  • 使配置文件生效
source ~/.bash_profile

接下来就可正常使用MySQL了。

4. 解决mysqld.sock无法连接

WSL最坑的地方就在于系统重启后MySQL等软件启动不了,这里可以通过以下命令重新启动MySQL,并让MySQL后台运行

nohup /home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/bin/mysqld_safe --defaults-file=/home/mysql/setup/mysql-5.7.31-linux-glibc2.12-x86_64/my.cnf --user=mysql &>/dev/null &
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值