linux下安装mysql8过程中遇到的问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、常见问题

1.初始化mysqld --initialize报错

2.Unit mysqld.service could not be found.

3.执行mysql命令时报错Can ‘t connect to local MySQL server through socket ‘/tmp/mysql.sock ‘(2)

4.mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

二、总结



前言

        由于MySQL使用频率高,公司有新项目的时候就需要安装MySQL数据库,而安装数据库的时候就会遇到各种各样的问题,在这里梳理一下做个记录。

一、安装过程中遇到的问题

1.初始化mysqld --initialize报错

问题描述:

MySQL安装完成之后,会初始化mysqld,出现如下错误:

./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

问题分析:

由于缺少MySQL依赖导致目录找不到。

解决方案:执行以下命令更新MySQL依赖再进行初始化。

注:初始化完成之后日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。

yum install -y libaio

yum -y install numactl

2.Unit mysqld.service could not be found.

问题描述:

执行service mysqld status命令查看mysqld状态。

结果报错Unit mysqld.service could not be found.

问题分析:

这个问题的原因是init.d目录中缺失mysql.server的映射文件。

解决方案:

1、输入find / -name mysql.server

这一步的目的是找到mysql.server文件路径

2、输入cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld(红色部分改成自己服务器中文件路径)把找到的文件复制到init.d目录并重命名为mysqld

3、输入systemctl enable mysqld添加自启动服务。

执行service mysqld status命令:

3.执行mysql命令时报错Can ‘t connect to local MySQL server through socket ‘/tmp/mysql.sock ‘(2)

问题描述:找不到mysql.sock

问题分析:

解决方案:

执行find / -name mysql.sock命令,能查到mysql.sock文件的话,只需将查到的结果做一个软连接到/tmp目录下即可解决(网上都是这么解决的)。

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

注:mysql.sock的作用?

mysql.sock的作用是server和client在同一台服务器,并且使用localhost进行链接的时候,就会使用socket来进行连接——仅此而已。也就是:为主机名为localhost建立的MySQL连接,该连接过程通过一个套接字文件mysql.socket实现的。所以该文件被删后,用localhost用户是连接不到MySQL服务器的。必须建立一条tcp/ip连接,即使用127.0.0.1而不是localhost作为-h的参数去连接MySQL服务器,如:mysqladmin -h 127.0.0.1 -u root -p shutdown,强制地建立一条tcp/ip连接;关闭MySQL服务器,再重新以localhost为主机名启动MySQL服务器,它就会重新创建一个套接字文件。

4.mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

问题描述:

运行命令:service mysqld start,提示mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.ERROR! The server quit without updating PID file(/usr/local/mysql/data/iZ2vc1hkgmux9qqwuprq0oZ.pid).

[ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?

问题原因:

“var/lib/mysql”目录不存在

执行cat /etc/my.cnf命令,查看socket路径: 

解决方案:

首要先创建目录并赋给权限:

mkdir   /var/lib/mysql 

chmod 777  /var/lib/mysql

重启之后该目录会出现如下文件:


二、总结

这些就是我在Linux下安装MySQL8遇到的问题,经过度娘及大佬的帮助总算完美解决,做个记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mysql8安装包以及安装说明,在centeros7下的安装.解压缩后会有两个文件:mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar和mysql8安装说明.txt 1、安装 rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包; rpm -iv example.rpm 安装 example.rpm 包并在安装过程显示正在安装的文件信息; rpm -ivh example.rpm 安装 example.rpm 包并在安装过程显示正在安装的文件信息及安装进度; 2、查看安装完成的软件 rpm -qa | grep mysql mysql-community-libs-5.7.24-1.el7.x86_64 mysql-community-common-5.7.24-1.el7.x86_64 mysql-community-client-5.7.24-1.el7.x86_64 mysql-community-server-5.7.24-1.el7.x86_64 3、卸载软件 rpm -e --nodeps 要卸载的软件包 rpm -e --nodeps mysql-community-libs-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-common-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-client-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-server-5.7.24-1.el7.x86_64 看看系统有没有自带有mysql的东西,有就先删除掉。 查看: find / -name mysql 删除: rm -rf 上边查找到的路径,多个路径用空格隔开 #或者下边一条命令即可 find / -name mysql|xargs rm -rf; mkdir -p /usr/local/mysql8 cd /usr/local/mysql8 ll 将下载的资源包(mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar)上传到 usr/local/mysql8 目录下,并解压 tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 依次安装 rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 查看已安装资源 rpm -qa | grep mysql groupadd mysql useradd -g mysql mysql mysqld --initialize 初始化 chown mysql:mysql /var/lib/mysql -R 授权 systemctl start mysqld 开启mysql服务 systemctl status mysqld 查看mysql 状态 cat /var/log/mysqld.log | grep password 查看root初始密码 使用root用户登录mysql ,并修改root用户密码 mysql -u root -p #回车之后输入前面的初始密码也就是 XXXXXX(填自己的密码) ALTER USER "root"@"localhost" IDENTIFIED BY "自己的密码"; FLUSH PRIVILEGES; #立即生效 再次用户root 用户登录 输入自己刚刚修改的密码就可以了 远程连接 use mysql; update user set host = '%' where user ='root'; ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自己的密码'; #更新用户密码 (我这里为root )

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值