CentOS7.4安装MySQL踩坑记录
time: 2018.3.19
CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, 如果你发现进坑了, 欢迎参考本篇文章:)
第一次尝试遇到的问题:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 尝试卸载重新安装, 参考步骤:1.查看yum是否安装过mysql
yum list installed mysql*
yum list installed | grep mysql*
没有显示结果, 说明yum中没有安装mysql(对yum与rpm并不是很了解, 如有错误欢迎指出)
2.删除配置文件与文件夹
rm -rf /var/lib/mysql
rm /etc/my.cnf
3.查看rpm中的安装并卸载
rpm -qa | grep -i mysql
以下根据上面命令显示的列表修改
3.清除余项
whereis mysql
删除上面命令显示的路径
rm -rf /usr/share/mysql/
4.删除配置
rm -rf /usr/my.cnf
rm -rf /root/.mysql*# 无结果
下载mysql源并安装到rpm:
wget rpm -ivh mysql57-community-release-el7-11.noarch.rpm更新yum并安装mysql(时间较长):
# 更新yum软件包 yum check-update # 更新系统 yum update # 安装mysql yum install mysql mysql-server注意事项
更新yum后可能需要重新编辑/usr/bin/yum文件头(因为笔者将默认的python更改为python3), 编辑后再次安装即可, 出现的错误如下:
未跳过grant-tables授权表时启动MySQL会出现:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
这里需要修改root的密码, 这条命令是给mysql加上一个启动参数--skip-grant-tables, 顾名思义,就是在启动mysql时不启动grant-tables授权表, 用于忘记管理员密码后的修改
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables --user=mysql &
但是, MySQL 5.7.6 版本开始默认是不安装mysqld_safe了, 以下为新方法:
1.停止 mysql 服务
service mysqld stop
2.设置 mysqld 选项 --skip-grant-tables参数:
systemctl set-environment MYSQLD_OPTS='--skip-grant-tables'
3.重新启动mysql
systemctl start mysqld
4.执行 mysql -u root 登录mysql并更改密码
password_expired = 'N'过期状态设置为No, flush privileges; 刷新权限记录, 详见
5.设置完密码后去掉--skip-grant-tables参数, 重启mysql即可用设置的密码登录root用户
systemctl unset-environment MYSQLD_OPTS
systemctl restart mysqld
mysql -uroot -p
由于笔者代码运行在服务器系统上, 故不此设置mysql远程访问