Centos下官网下载安装Mysql(记:走过的坑)

凉 风有兴,秋 月无边。

天气转凉,闲来无趣搞个云服务器部署个小项目玩一玩,起初觉得安装Mysql并不是很复杂,就没在意,谁知道后续踩了一堆坑。

下面总结一下安装过程和踩过的坑,如有错误,欢迎指正~
 引用地址:https://www.jianshu.com/p/276d59cbc529(本人是参照此教程进行的安装,写的很详细。具体过程就不列了,可参考此教程。)

一 下载源码并解压

 查询yum仓库 mysql安装包,发现没有自己想要的版本。

Centos下官网下载安装Mysql(记:走过的坑)_第1张图片

 选择从官网下载mysql(下载的为5.7版本,也可以选择适合自己的版本下载)

# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

  解压安装包并移动到本地重命名为mysql

# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

二 安装并初始化

 编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

三 问题分析并处理

 根据教程中的步骤安装mysql完成后。启动mysql。

# /usr/local/mysql/support-files/mysql.server start

启动报错:

Starting MySQL... ERROR! The server quit without updating PID file( /usr/local/mysql/data/VM_0_6_centos.pid)

 度娘了一下,发现大家总结了这几点

 错误解决排查思路:

 1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
 解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动   mysqld!

 2.可能进程里已经存在mysql进程
 解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld!

 3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
 解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。

 4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录  (datadir)。
 解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

 5.skip-federated字段问题
 解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

 6.错误日志目录不存在
 解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

 7.selinux惹的祸,如果是centos系统,默认会开启selinux
 解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

 都试了发现并没有用,于是自己vi观察配置文件发现 pid-file指向的路径不存在:

Centos下官网下载安装Mysql(记:走过的坑)_第2张图片 

注释后再执行启动mysql命令发现正常启动。

 

登录mysql,修改密码时报错:

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

 解决方式:观察 my.cnf发现socket指向文件为/var/lib/mysql/mysql.sock,

 实际应用为:/tmp/mysql.sock

Centos下官网下载安装Mysql(记:走过的坑)_第3张图片

添加软链接指向路径:/var/lib/mysql/mysql.sock

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

完成后再登录,密码为初始化时给的密码,即可登录。 

你可能感兴趣的:(学习中的问题和知识)