1. 程式人生 > >記一次 centos7.2 rpm方式安裝mysql5.7.19 報錯

記一次 centos7.2 rpm方式安裝mysql5.7.19 報錯

assume bzip with mysql oot -s first minimal enter

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

[root@centos-linux ~]# rpm -qa|grep mariadb
 mariadb-libs-5.5.44-2.el7.centos.x86_64 
[root@centos-linux ~]# 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下載地址

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

然後解壓

 [root@linux_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、安裝
依次執行(幾個包有依賴關系,所以執行有先後)下面命令安裝
[root@centos-linux ~]# rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
[root@centos-linux ~]# rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
[root@centos-linux ~]# 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的時候報錯如下:

  [root@linux_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文件裏,紅色區域的就是自動生成的密碼 [root@linux_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 root@localhost:hm9dKgzQdm:W
  現在啟動mysql數據庫systemctl start mysqld.service
  [root@linux_node_1 src]# systemctl start mysqld.service
  [root@linux_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 root@% identified by Password123! with grant option;

  flush privileges;

這樣就用遠程客戶端登錄了。

  

記一次 centos7.2 rpm方式安裝mysql5.7.19 報錯