CentOS7安裝MySQL5.7 rpm以上說明

1.卸載衝突

卸載mysql

執行rpm –qa|grep -i mysql查看是否存在舊版的mysql,若存在,則可使用如下命令依次刪除php

rpm –e mysql-community-*node

查看是否存在殘餘垃圾mysql

whereis mysqlsql

執行如下命令刪除數據庫

rm -rf /var/lib/mysqlvim

卸載mariadb

rpm -qa | grep mariadb
#顯示以下:
mariadb-libs-5.5.50-1.el7_2.x86_64 
mariadb-5.5.50-1.el7_2.x86_64 
mariadb-server-5.5.50-1.el7_2.x86_64 

卸載centos

rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64

此時報錯:安全

error: Failed dependencies:
    libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
    libmysqlclient.so.18()(64bit) is needed by (installed) perl-DBD-MySQL-4.023-5.el7.x86_64
    libmysqlclient.so.18()(64bit) is needed by (installed) php-mysql-5.4.16-36.3.el7_2.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) perl-DBD-MySQL-4.023-5.el7.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) php-mysql-5.4.16-36.3.el7_2.x86_64
    mariadb-libs(x86-64) = 1:5.5.50-1.el7_2 is needed by (installed) mariadb-1:5.5.50-1.el7_2.x86_64
    mariadb-libs(x86-64) = 1:5.5.50-1.el7_2 is needed by (installed) mariadb-server-1:5.5.50-1.el7_2.x86_64

強制卸載,由於沒有–nodepsbash

# rpm -e --nodeps mariadb-libs-5.5.50-1.el7_2.x86_64
# rpm -e --nodeps mariadb-5.5.50-1.el7_2.x86_64
# rpm -e --nodeps mariadb-server-5.5.50-1.el7_2.x86_64

2.下載rpm安裝包並解壓

地址:http://dev.mysql.com/downloads/mysql/ide

選擇mysql-5.7.14-1.el7.x86_64.rpm-bundle.tar下載到/tmp目錄

執行解壓

tar -xf mysql-5.7.14-1.el7.x86_64.rpm-bundle.tar

3.安裝rpm包

依次安裝

依次執行如下命令對上圖的四格綠框的rpm進行安裝,是依次執行,不要亂了順序,由於它們之間有依賴關係。:

rpm -ivh mysql-community-common-5.7.14-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.14-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.14-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.14-1.el7.x86_64.rpm

常見錯誤

錯誤信息

Linux CenterOs 64位中安裝 MySQL-server-5.5.25a-1.rhel5.x86_64.rpm 出現如下錯誤
[root@localhost upload]# rpm -ivh mysql-server-5.5.25a-1.rhel5.x86_64.rpm
error: Failed dependencies:
    libaio.so.1()(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64
    libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64
    libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64


從以上錯誤信息能夠看出是由於缺乏庫libaio,因此須要安裝libaio

安裝libaio-0.3.107-10.el6.x86_64.rpm

下載地址:
http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
安裝完成後,便可成功安裝MySQL-server-5.5.25a-1.rhel5.x86_64.rpm
按照上面的方法,安裝後以後若是仍是存在問題,你能夠在文章後面進行留言說明

3.mysql5.7因爲對安全作了特殊處理

須要執行如下命令:

在Unix和Unix系列系統中,有一點是很重要的,那就是確保數據庫目錄與文件的全部者爲mysql登陸帳戶,以便在你運行mysqld服務的時候,mysql服務能夠對這些目錄和文件進行讀取與寫入操做。若是你是以root身份運行mysqld服務,就須要確認一下,執行以下面顯示的包含有--user選項的命令:

mysqld --initialize --user=mysql

無論在哪一個平臺上,使用--initialize選項就是以「默認安全模式」來進行安裝的(即包含一個隨機的root初始密碼的生成)。在這種狀況下,密碼是被標誌爲過時的,你須要選擇一個新的密碼。

我是以root身份登陸Linux系統的,而且我想爲root帳戶生成一個隨機的初始密碼,因此我要執行命令:mysqld --initialize --user=mysql;這樣就完成了對MySQL的初始化,併爲root帳戶生成了一個隨機的初始密碼。

4.查看隨機密碼

vim /var/log/mysqld.log

5.啓動服務

systemctl start mysqld

咱們來看下mysqld是否已經啓動了,執行命令:

systemctl status mysqld

若是看到的和下圖同樣,就說明已經啓動了:

咱們來對上一步做個補充,由於你也有可能會遇到。若是你在執行命令:

systemctl start mysqld時,出現了和下圖同樣的提示:

Job for mysqld.service failed. See 'systemctl status mysqld.service' and 'journalctl -xn' for details.

出現這樣的錯誤提示,咱們先查看一下/var/lib/mysql-files目錄是否存在

執行命令:

ls -ld /var/lib/mysql-files

若是不顯示任何信息就表示不存在

執行命令:

mkdir /var/lib/mysql-files

建立/var/lib/mysql-files目錄。

這時,咱們試着執行命令:

systemctl start mysqld

若是還出現和下圖同樣的提示,咱們執行另外一條命令:chown -R mysql:mysql /var/lib/mysql,將/var/lib/mysql目錄及其下全部文件和子目錄的全部者和所屬組都改成mysql。

咱們再執行一下:systemctl start mysqld應該就能夠啓動mysqld服務了。

6.登陸mysql並修改初始密碼

執行命令:mysql -u root -p 並輸入以前的隨機密碼

特別說明:(若是密碼一致不正確,則能夠不修改my.cnf配置文件進行不驗證密碼登陸)

除此登陸時必需要修改密碼的,不修改密碼是不能進行任何操做的。會提示以下信息:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

執行

alter user 'root'@'localhost' identified by 'mYsqL$%123';

就將root帳戶的密碼修改成mYsqL$%123了。

有一點須要注意,MySQL對用戶密碼安全性有所增強,因此設置的密碼必須包含有數字,大寫字母,小寫字母,特殊符號,若是你設置的密碼過於簡單,會提示:

ERROR 1819 (HY000): Your password does NOT satisfy the CURRENT policy requirements。

7.密碼長度特別驗證修改

對於初次登陸系統進行密碼修改,必需要修改成嚴格模式,若是密碼國語簡單,則會提示下面錯誤:

mysql> ALTER USER USER() IDENTIFIED BY 'root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

這個其實與validate_password_policy的值有關。

validate_password_policy有如下取值:

Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

默認是1,即MEDIUM,因此剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。

有時候,只是爲了本身測試,不想密碼設置得那麼複雜,譬如說,我只想設置root的密碼爲123456。

必須修改兩個全局參數:

首先,修改validate_password_policy參數的值

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

這樣,判斷密碼的標準就基於密碼的長度了。這個由validate_password_length參數來決定。

mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 8 |
+----------------------------+
1 row in set (0.00 sec)

validate_password_length參數默認爲8,它有最小值的限制,最小值爲:

validate_password_number_count
+ validate_password_special_char_count
+ (2 * validate_password_mixed_case_count)

其中,validate_password_number_count指定了密碼中數據的長度,validate_password_special_char_count指定了密碼中特殊字符的長度,validate_password_mixed_case_count指定了密碼中大小字母的長度。

這些參數,默認值均爲1,因此validate_password_length最小值爲4,若是你顯性指定validate_password_length的值小於4,儘管不會報錯,但validate_password_length的值將設爲4。以下所示:

mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 8 |
+----------------------------+
1 row in set (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 4 |
+----------------------------+
1 row in set (0.00 sec)

按照以上操做以後,咱們就能夠將密碼修改成簡單模式了。

相關文章
相關標籤/搜索