记一次安装MYSQL遇到的问题

一、缘起

之前在百度云服务器上的安装的MYSQL死活登陆不进去了,所以安装将其卸载重新安装了MYSQL8.0.19,算是一个比较新的版本,遇到了许多坑,最终成功安装。特此记录。

二、步骤

1)卸载

在安装MYSQL之前,先要检查是否删除干净了之前安装的MYSQL的文件,使用rpm -qa | grep -i mysql查询,有结果输出来,说明没有删除彻底;删除之前,先停掉MySQL的服务,使用systemctl stop mysqld或者service mysql stop命令。使用find命令或者whereis命令查询MySQL相关的文件,这里要__注意__有些软件有MySQL作为内核模块,其中有MySQL这种文件夹,这种是__不能删除__的。接下来开始卸载MySql相关组件,使用rpm -ev xxx命令卸载,如果在卸载过程中出现提示无法卸载,如果是缺少依赖关系导致的,使用rpm -ev --nodeps xxx命令,--nodeps是安装不检查依赖关系。卸载完成后开始删除MySql相关文件。删除完毕后,使用rpm -qa | grep -i mysql查询,如果没有任何显示说明卸载成功。

2)安装
  • 第一步 下载镜像
    wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  • 第二步 安装镜像
    rpm -ivh mysql80-community-release-el7-3.noarch.rpm
  • 第三步 升级系统上MYSQL软件包
    yum update mysql-server或者yum update
  • 第四步 安装MySql服务
    yum install mysql-server
3)使用
  • MySql文件权限设置
    对MySql赋予/var/lib/mysql的权限,chown mysql:mysql -R /var/lib/mysql
  • 初始化MySql服务
    mysqld --initialize
  • 启动MySql
    systemctl start mysqld
    systemctl enable mysqld

    如果在启动过程中,出现Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.的提示,这样解决
    chown mysql:mysql -R /var/lib/mysql,原因:mysql需要权限向该文件夹下写入数据,如果没有权限则会报错,导致启动失败。
  • 查看Mysql版本
    mysqladmin --version
  • 设置数据库密码
    数据库在安装完成后不会默认设置密码,需要我们自己设置密码。可以采用mysqladmin -u root password "密码",可能以前装过MySql的机器上会出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)这种错误,这种情况下,使用其他方法设置密码,解决方案如下:
    (1) 停止mysql服务
    systemctl stop mysqld

    (2) 用不检查权限的方式启动
    mysql mysqld --skip-grant-tables & 或者 mysqld --user=root --skip-grant-tables &

    (3) 登录mysql
    mysql -u root -p 或 mysql

    (4) 更改root密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

    (5) 如果出现错误,flush privileges;刷新权限即可

    (6) 退出,登录
    mysql mysql -u root -p
4)拓展(开启MySql远程连接)
  • 登录数据库
  • 创建用户用来远程连接,由于安装的MySql版本比较新,所以在创建用户并授权时,不能像低版本那样一句搞定 GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;,高版本在授权时不需要IDENTIFIED BY '密码' WITH GRANT OPTION,只需GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'就可以了。正确写法:create user 'test'@'%' identified by '密码'; grant all privileges on *.* to 'test'@'%'
  • 然后flush privileges;刷新权限即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值