提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
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遇到的问题,经过度娘及大佬的帮助总算完美解决,做个记录。