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同時也將確保導入相關依賴庫,這些都將使我們的安裝過程簡單化。進入http://dev.mysql.com/downloads/repo/,下載RedHat Enterprise Linux 6 / Oracle Linux 6版
點這個連接就不用帳號密碼登錄了【No thanks, just start my download.】
這裡我是直接選中鏈接右鍵複製文件地址:http://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
MySQL 安裝
1、mysql安裝檢查
yum list installed | grep mysql
如果已經有的話執行命令
yum -y remove mysql-libs.x86_64
卸載已經安裝的mysql。
2、官網下載安裝包
1.先到mysql官網http://dev.mysql.com/downloads/mysql/下載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 的密碼很簡單:
- 修改/etc/my.cnf,在 [mysqld] 小節下添加一行:skip-grant-tables=1 這一行配置讓 mysqld 啟動時不對密碼進行驗證
- 重啟mysqld 服務:
service mysqld restart
- 使用 root 用戶登錄到 mysql:
mysql -u root
- 切換到mysql資料庫,更新 user 表:
update mysql.user set authentication_string=password(123456) where user=root and Host =localhost;
在之前的版本中,密碼欄位的欄位名是 password,5.7版本改為了 authentication_string
- 退出 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要完