CentOS 6.5下RPM方式(重新)安装MySQL 5.7.21从头到尾篇

2019 Java 开发者跳槽指南.pdf (吐血整理)….>>>
  • 今天把Mysql5.1升级到了5.7,浪费了一天为了避免以后重复麻烦,总结一下(红色字体为正常执行顺序):

  1. 查看该操作系统上是否已经安装了mysql数据库
    rpm -qa | grep mysql
  2. 通过 rpm -e 命令 或者 rpm -e –nodeps 命令卸载
    rpm -e mysql... // 普通删除模式
    rpm -e --nodeps mysql... // 强力删除模式(包括依赖包)
    此处mysql…代指第一步查询列表
  3. 如果没有安装,只是有包,则remove
    yum -y remove mysql-libs
    查看卸载是否成功
    rpm -qa | grep mysql
  4. 使用rpm软件包安装mysql
    安装依赖包
    下载地址为:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
    rpm -ivh mysql-community-common-5.7.9-1.el6.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.9-1.el6.x86_64.rpm
    安装客户端
    rpm -ivh mysql-community-client-5.7.9-1.el6.x86_64.rpm
    安装服务端
    rpm -ivh mysql-community-server-5.7.9-1.el6.x86_64.rpm
  5. 根据/etc/my.cnf创建相应的文件,并授权
    mkdir -p /var/run/mysql
    mkdir -p /var/log/mysql
    chown -R mysql:mysql /var/log/mysql
    chown -R mysql:mysql /var/run/mysql
    注:/etc/my.cnf中没有basedir路径,需要添加
    basedir=/usr/local/mysql
  6. 初始化数据库
    cd /usr/bin
    会为root账户生成一个随机的初始密码( 密码位置:/var/log/mysqld.log )
    注:使用命令:mysql -u root -p,然后输入密码来登录MySQL
    mysqld --initialize --user=mysql
    不会为root账户生成一个随机的初始密码
    注:使用命令:mysql -u root –skip-password直接登录MySQL
    mysqld --initialize-insecure --user=mysql
    注:初始化时,mysqld服务会检查数据目录是否存在:
    如果数据目录不存在,mysqld则会创建它。
    如果数据目录存在,且不是空目录(即包含有文件或子目录),mysqld会显示一条错误信息并中止:
    [ERROR] –initialize specified but the data
    directory exists. Aborting.
    解决方案: 将数据目录重命名后,重新再初始化一次 mv /var/lib/mysql /var/lib/mysql.bak8.
  7. 配置mysql服务开机自动启动
    检查自启动项列表中没有mysqld这个,如果没有就添加mysqld:
    chkconfig --list mysqld
    chkconfig --add mysqld
    设置开机启动
    chkconfig mysqld on
  8. 启动mysql
    启动mysqld服务
    service mysqld start
    检查mysqld是否已经启动
    service mysqld status
  9. 修改mysql用户密码(初始root密码文件在/var/log/mysqld.log)
    mysql -uroot-p
    mysql> alter user 'root'@'localhost' identified by '123456';
  10. 已root用户身份登录
    mysql -uroot -p123456

  • 1.请看下面的重点:一般你rpm方式安装成功是没有问题的,问题是安装成功后启动不起来的事。
  • 2.你要想执行mysql -uroot -p命令首先你得启动你安装的mysql服务,当你执行启动命令:service mysqld start出现报错信息:
MySQL Daemon failed to start.  Starting mysqld: [FAILED]
  • 解决方法:执行下列命令然后再执行service mysqld start启动mysql
rm -fr /var/lib/mysql/*   m /var/lock/subsys/mysqld    killall mysqld  
  • 3.mysql服务启动后,执行mysql -uroot -p进入修改原始密码:
    注:若登录失败就使用命令mysql -u root --skip-password直接登录MySQL,执行下列语句修改密码:

    MySQL -u root
    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

    该语句若失败, 用UPDATE直接编辑user表
    mysql -u root
    mysql> use mysql;
    mysql> UPDATE user SET Password = PASSWORD('123456') WHERE user = 'root';
    mysql> FLUSH PRIVILEGES;


  • 若是执行上述修改密码报错


ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

这时候我们只要

mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)

再执行修改密码即可

  • 4 远程连接mysql root账号报错:2003-can’t connect to MYSQL serve
    解决方法:

    授权法

    1.登录数据库:mysql -uroot -p(密码|123456)
    2.执行:
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    3.执行 flush privileges;命令立即生效

    改表法:

    mysql>use mysql;
    mysql>update user set host = ‘%’ where user = ‘root’;


收藏博客|方便查找