记一次 centos7.2 rpm方式安装mysql5.7.19 报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次 centos7.2 rpm方式安装mysql5.7.19 报错相关的知识,希望对你有一定的参考价值。

0、环境

本文操作系统: CentOS 7.2.1511 x86_64
mysql 版本: 5.7.19
安装之前先把开发环境装一下

yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre* make gd-devel libjpeg-devel 
libpng-devel libxml2-devel bzip2-devel libcurl-devel glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel

  yum install gcc* net-tools perl

  yum -y groupinstall "Development Tools"      ##会一次安装很多常用的开发包,包括gcc,g++等编译文件必须的工具。

 

1、卸载系统自带的 mariadb-lib

[[email protected] ~]# rpm -qa|grep mariadb
 mariadb-libs-5.5.44-2.el7.centos.x86_64 
[[email protected] ~]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

2、下载我们需要的mysql5.7.19 rpm安装包,官网mysql安装包是mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar下载地址

[[email protected] ~]# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar

然后解压

 [[email protected]_node_1 src]# tar -xvf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 
  mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
  mysql-community-devel-5.7.16-1.el7.x86_64.rpm
  mysql-community-minimal-debuginfo-5.7.16-1.el7.x86_64.rpm
  mysql-community-libs-5.7.16-1.el7.x86_64.rpm
  mysql-community-common-5.7.16-1.el7.x86_64.rpm
  mysql-community-embedded-compat-5.7.16-1.el7.x86_64.rpm
  mysql-community-test-5.7.16-1.el7.x86_64.rpm
  mysql-community-embedded-devel-5.7.16-1.el7.x86_64.rpm
  mysql-community-server-minimal-5.7.16-1.el7.x86_64.rpm
  mysql-community-server-5.7.16-1.el7.x86_64.rpm
  mysql-community-client-5.7.16-1.el7.x86_64.rpm
  mysql-community-embedded-5.7.16-1.el7.x86_64.rpm
3、安装
依次执行(几个包有依赖关系,所以执行有先后)下面命令安装
[[email protected] ~]# rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
[[email protected] ~]# rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[[email protected] ~]# rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
[[email protected] ~]# rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
在安装rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm的时候报错如下:

  [[email protected]_node_1 src]# rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm 
  warning: mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
  error: Failed dependencies:
  libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
  libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
  libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64

  这个报错的意思是需要安装libaio包:可以yum安装一下,安装 libaio-0.3.107-10.el6.x86_64.rpm,下载地址:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm

4、数据库初始化

为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
mysqld --initialize --user=mysql


  如果是以 mysql 身份运行,则可以去掉 --user 选项。

  另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。

  这里演示使用的 --initialize 初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码
  [[email protected]_node_1 src]# cat /var/log/mysqld.log 
  2016-12-07T04:41:58.028558Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  2016-12-07T04:41:58.315188Z 0 [Warning] InnoDB: New log files created, LSN=45790
  2016-12-07T04:41:58.355114Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
  2016-12-07T04:41:58.418448Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 7cc98831-bc37-11e6-a263-000c29f902dc.
  2016-12-07T04:41:58.419935Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed‘ cannot be opened.
  2016-12-07T04:41:58.420558Z 1 [Note] A temporary password is generated for [email protected]:hm9dKgzQdm:W
  现在启动mysql数据库systemctl start mysqld.service
  [[email protected]_node_1 src]# systemctl start mysqld.service
  [[email protected]_node_1 src]# mysql -uroot -p
  Enter password: 
  Welcome to the MySQL monitor.  Commands end with ; or \g.
  Your MySQL connection id is 2
  Server version: 5.7.16
  Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
  Oracle is a registered trademark of Oracle Corporation and/or its
  affiliates. Other names may be trademarks of their respective
  owners.
  Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
  mysql>
 
  5、修改密码
 
  该密码被标记为过期了,如果想正常使用还需要修改密码
 
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 
  以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密码
 
mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘new_password‘;

 
  同时,如果你设置的密码过于简单也会报错。
 
mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘123‘;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

  具体关于设置密码的规则,可以看官方文档;

  这里我们注意设置密码 长度要大于8,同时要有数字,大小写,特殊字符。

  

  远程权限

 

  grant all privileges on *.* to [email protected]% identified by Password123! with grant option;

  flush privileges;

 

  这样就用远程客户端登录了。

 

 

  

以上是关于记一次 centos7.2 rpm方式安装mysql5.7.19 报错的主要内容,如果未能解决你的问题,请参考以下文章

记一次安装Nginx+php-fpm安装后无法解析.php文件,状态码200,但显示空白页

yum 记一次安装时的报错

zabbix记一次简单的部署包方式安装一次过

centos7.2 安装mysql8.0.11 并自动初始化root密码

linux学习记录:记一次手动编译安装组件的过程

linux学习记录:记一次手动编译安装组件的过程