Centos6.X 64位安裝Mysql 5.7

Centos6.X 64位安裝Mysql 5.7

來自專欄 運維之路

前言

在centos 6.6 上面用yun list mysql 只能查出mysql 5.1的版本因此我們要去Mysql官網下載yum 安裝包。

2013年10月,MySQL開發團隊正式宣布支持Yum倉庫,這就意味著我們現在可以從這個Yum庫中獲得最新和最優版的MySQL安裝包。本文將在一台全新安裝的CentOS6上安裝MySQL5.6,如果你不熟悉MySQL5.6的新特性,我建議從MySQL 5.6的新特性開始,其中有很多非常有用的特性。

首先我們需要從MySQL開發者網站下載Yum倉庫文件,導入Yum庫後,一個簡單的yumupdate命令將確保你運行在MySQL5.6的最新發布版上,包括一些安全特性的更新。Yum同時也將確保導入相關依賴庫,這些都將使我們的安裝過程簡單化。進入dev.mysql.com/downloads,下載RedHat Enterprise Linux 6 / Oracle Linux 6版

點這個連接就不用帳號密碼登錄了【No thanks, just start my download.】

這裡我是直接選中鏈接右鍵複製文件地址:dev.mysql.com/get/mysql

MySQL 安裝

1、mysql安裝檢查

yum list installed | grep mysql

如果已經有的話執行命令

yum -y remove mysql-libs.x86_64

卸載已經安裝的mysql。

2、官網下載安裝包

1.先到mysql官網dev.mysql.com/downloads下載5.7的安裝包

2.download-yum選擇Red Hat Enterprise Linux 7 / Oracle Linux 7 (ArchitectureIndependent), RPM Package ,

3.直接在cetnos 的終端輸入命令下載文件:

cd /tmpwget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

如果新的系統還沒有wget命令的話可以先:

yum install wget -y

3、添加選擇yum源:

yum localinstall mysql57-community-release-el7-7.noarch.rpmyum repolist all | grep mysql

4、安裝mysql:

yum install mysql-community-server

輸入yes完成安裝。

5、安裝完成之後會自動在log中生成連接的密碼,

由於mysql 5.7 相比起以前的版本有點不同,初次安裝密碼是隨機生成的要去日誌文件裡面找。

啟動mysql:

service mysqld start

查看密碼:

[root@keegv ~]# cat /var/log/mysqld.log |grep password2017-12-03T22:13:28.942726Z 1 [Note] A temporary password is generated for root@localhost: CTr2uS2f;cE+

你必須重新設置密碼才能執行語句

[root@keegv ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 4Server version: 5.7.14Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type help; or h for help. Type c to clear the current input statement.mysql> show databases;ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.>ALTER USER USER() IDENTIFIED BY 需要設置安全等級很高的密碼,否則報錯;#或者如下:>ALTER USER root@localhost identified by 需要設置安全等級很高的密碼,否則報錯 password expire never;#這個錯誤是因為密碼太簡單RROR 1819 (HY000): Your password does not satisfy the current policy requirements

之所以會出現上面的錯誤信息,這和密碼的安全等級相關,查看安全等級命令如下

mysql> SHOW VARIABLES LIKE validate_password%;+--------------------------------------+--------+| Variable_name | Value |+--------------------------------------+--------+| validate_password_dictionary_file | || validate_password_length | 8 || validate_password_mixed_case_count | 1 || validate_password_number_count | 1 || validate_password_policy | MEDIUM || validate_password_special_char_count | 1 |+--------------------------------------+--------+

通過 SET GLOBAL validate_password_policy=LOW; 命令,降低安全等級後,就可以直接使用,限制是必須8個字元以上;

mysql> SET GLOBAL validate_password_policy=LOW -> ;Query OK, 0 rows affected (0.00 sec)mysql> ALTER USER root@localhost IDENTIFIED BY chenbaojia;Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> quit;Bye

6、重置 5.7 的密碼很簡單:

  1. 修改/etc/my.cnf,在 [mysqld] 小節下添加一行:skip-grant-tables=1 這一行配置讓 mysqld 啟動時不對密碼進行驗證
  2. 重啟mysqld 服務:

service mysqld restart

  1. 使用 root 用戶登錄到 mysql:

mysql -u root

  1. 切換到mysql資料庫,更新 user 表:

update mysql.user set authentication_string=password(123456) where user=root and Host =localhost;

在之前的版本中,密碼欄位的欄位名是 password,5.7版本改為了 authentication_string

  1. 退出 mysql,編輯 /etc/my.cnf 文件,刪除 skip-grant-tables=1的內容

7、重啟mysqld 服務,再用新密碼登錄即可

[root@keegv ~]# mysql -Vmysql Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using EditLine wrapper[root@keegv ~]# service mysqld restartStopping mysqld: [ OK ]Starting mysqld: [ OK ]

8、允許遠程連接

mysql> select user,host from mysql.user;+-----------+-----------+| user | host |+-----------+-----------+| mysql.sys | localhost || root | localhost |+-----------+-----------+2 rows in set (0.00 sec)mysql>grant all privileges on *.* to root@% identified by password with grant option;

9、修改密碼多種方法

方法1: 用SET PASSWORD命令

mysql -u root mysql> SET PASSWORD FOR root@localhost = PASSWORD(newpass);

方法2:用mysqladmin

mysqladmin -u root password "newpass"#如果root已經設置過密碼,採用如下方法mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接編輯user表

mysql -u rootmysql> use mysql;mysql> UPDATE user SET Password = PASSWORD(newpass) WHERE user = root;mysql> FLUSH PRIVILEGES;

在丟失root密碼的時候,可以這樣

mysqld_safe --skip-grant-tables&mysql -u root mysqlmysql> UPDATE user SET password=PASSWORD("new password") WHERE user=root;mysql> FLUSH PRIVILEGES;

方法4: 使用ALTER USER修改用戶信息

ALTER USER root@localhost IDENTIFIED BY new_password PASSWORD EXPIRE NEVER;


推薦閱讀:

為什麼運維(SA)普遍反對使用 CentOS 7 ?
RHEL7/CentOS7在線和離線安裝GitLab配置使用實踐
從零開始部署 CentOs7 + Apache + PHP + mariaDB + https
企業用哪個版本的 Linux?
CentOS要完

TAG:MySQL | CentOS | Linux運維 |