凉 风有兴,秋 月无边。
天气转凉,闲来无趣搞个云服务器部署个小项目玩一玩,起初觉得安装Mysql并不是很复杂,就没在意,谁知道后续踩了一堆坑。
下面总结一下安装过程和踩过的坑,如有错误,欢迎指正~
引用地址:https://www.jianshu.com/p/276d59cbc529(本人是参照此教程进行的安装,写的很详细。具体过程就不列了,可参考此教程。)
查询yum仓库 mysql安装包,发现没有自己想要的版本。
选择从官网下载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指向的路径不存在:
注释后再执行启动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
添加软链接指向路径:/var/lib/mysql/mysql.sock
ln -s /var/lib/mysql/mysql.sock /tmp
完成后再登录,密码为初始化时给的密码,即可登录。