CentOS安装MySQL

这里不得不先吐槽下各种解决这个问题的文章,公司刚刚校招进来的新同学被坑的好惨,到处找解决办法,结果搜索出来方法全都一样,就是解决不了,一度怀疑自己是不是不适合这个职业,只能说发布和搬运文章的作者们可能根本就没有试过是不是能够解决问题。

一、基本安装过程

  1. 查看系统是否安装了mysql软件
  rpm -qa|grep -i mysql
  1. 将已经安装过的软件卸载掉
  yum remove mysql
  1. 下载安装mysql的repo源
    CentOS 7的yum源中默认是没有mysql的。所以,为了解决这个问题我们首先下载安装mysql的repo源。
    可以在MySQL官方的Yum Repository地址:https://dev.mysql.com/downloads或者https://repo.mysql.com/找到要下载的安装包路径,例如这里使用http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
  wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
  1. 安装mysql的repo源
  rpm -ivh mysql57-community-release-el7-7.noarch.rpm
  1. 按照以下顺序开始安装
  yum install mysql-server
  yum install mysql-devel
  yum install mysql
  # 查看安装结果
  rpm -qa | grep -i mysql
  1. 服务开关操作
  # 以下执行其中之一即可
  # 查看mysql当前的状态
  service mysqld status 
  systemctl status mysqld

  # 启动mysql
  service mysqld start
  systemctl start mysqld

  # 停止mysql
  service mysqld stop 
  systemctl stop mysqld

  # 重启mysql
  service mysqld restart 
  systemctl restart mysqld
  1. 设置MySQL开机启动
  systemctl enable mysqld

二、安装完成后无法登录的问题,这里不止针对CentOS,其他系统安装MySQL方法相同。

安装完成后用命令mysql -u root -p 然后Enter Password,但是无法登录。解决办法如下:

  1. /etc/my.cnf文件中最后添加一行skip-grant-tables,作用就是跳过了MySQL的用户验证,然后重启mysql,这里建议新手复制保存一份原文件,以便搞乱以后可以还原
  systemctl restart mysqld
  1. 输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库,进入数据库之后依次执行下面的命令:
  use mysql;
  show tables;
  select user, authentication_string from user;
  update mysql.user set authentication_string=password('') where user='root';
  flush privileges;
  exit;
  1. 恢复/etc/my.cnf文件,将skip-grant-tables删除或者注释掉,然后重启mysql
  systemctl restart mysqld
  1. 使用空密码进入MySQL,依次执行下面的命令
  # 将123456替换成需要设置的密码
  ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  flush privileges;
  exit;

问题解决

PS:记录下一个小问题,只希望给遇到同样问题的新人一个正确的解决方法,顺便吐槽下当前胡乱搬运的情况,祝各位早日富可敌国,以上。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容