centos7 yum 安裝 mysql7

CentOS7的yum源中是沒有mysql的,所以Centos7安裝MySQL就不能像Centos6那麼用yum源直接安裝了

yum源中MySQL的安裝
1. 查看MySQL是否啓動

如果啓用,先停掉mysql進程: pkill -9 mysqld

2. 查看MySQL相關的安裝包
rpm -qa|grep -i mysql

如果有安裝包,則通過以下命令將所有MySQL安裝包刪除
yum -y remove  mysql

3. 下載mysql的repo源,這源下載的是最新的版本
[fuyun@bigdata src]$ cd /usr/local/src/

在linux下wget命令用來從指定的URL下載文件。wget非常穩定,它在帶寬很窄的情況下和不穩定網絡中有很強的適應性,如果是由於網絡的原因下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。如果是服務器打斷下載過程,它會再次聯到服務器上從停止的地方繼續下載。這對從那些限定了鏈接時間的服務器上下載大文件非常有用。

[fuyun@bigdata src]$ sudo wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

[fuyn@bigdata src]$ sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm
 


[fuyun@bigdata src]$ sudo yum -y install mysql-server

4. 啓動MySQL服務
[fuyun@bigdata src]$ sudo systemctl restart mysqld.service

5. 查看MySQL初始密碼並登錄MySQL
[fuyun@bigdata src]$ grep "password" /var/log/mysqld.log

用上面截圖的密碼登錄MySQL
mysql -u root -p

第一次登陸 ,需要重置密碼 要不什麼也不能操作


接下來重置密碼:5.7.20 爲了安全密碼 必須包含 數字字母(大小寫)符號


alter user 'root'@'localhost' identified by 'Mysql@123';

最後記得刷新權限;
flush privileges

也可以 直接再添加新用戶
mysql> CREATE USER 'fuyun'@'%' IDENTIFIED BY 'Mysql@123';

設置root用戶可以在任意ip登錄
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Mysql@123' with grant option;

查詢用戶登錄ip和用戶名稱
mysql> select host, user from mysql.user;

刪除某用戶信息
mysql> delete from mysql.user where host = 'localhost' and user = 'root';

添加或修改後記得再次刷新權限
flush privileges

如果你想允許用戶myuser從ip爲192.168.1.6的主機連接到mysql服務器,並使用mypassword作爲密碼
grant all privileges on *.* to 'myuser'@'192.168.1.3' identified by 'mypassword' with grant option;

flush privileges;

如果你想允許用戶myuser從ip爲192.168.1.6的主機連接到mysql服務器的dk數據庫,並使用mypassword作爲密碼

grant all privileges on dk.* to 'myuser'@'192.168.1.3' identified by 'mypassword' with grant option;

flush privileges;

設置MySQL自啓動
查看系統當前默認啓動項目的方法,不再是setup之類的了。
systemctl list-unit-files


設置MySQL自啓動
systemctl enable mysqld

設置禁止MySQL自啓動

在開啓啓動中遇到自啓動問題
問題
如果出現系統重啓後,發現mysqld服務啓動正常,但是依賴mysql數據庫的應用程序A啓動失敗。
查看日誌顯示,程序A啓動的時候鏈接數據庫失敗。

可能原因
mysqld服務是正常啓動的。
此時手動重啓程序A,A也正常運行。
結論:說明程序A啓動的時候,mysqld可能沒有啓動。

解決方法
查看系統當前默認啓動項目的方法,不再是setup之類的了。
systemctl list-unit-files
執行此命令能查看當前系統的服務啓動和服務狀態。

取消mysqld的自啓動
systemctl disable mysqld
執行該命令後再查看當前系統的服務狀態:

自定義/etc/rc.local
先執行systemctl start mysqld
再執行startA

 

=====================================================================

此時MySQL已經開始正常運行,不過要想進入MySQL還得先找出此時root用戶的密碼,通過如下命令可以在日誌文件中找出密碼:

[root@localhost ~]# grep "password" /var/log/mysqld.log

  如下命令進入數據庫:

[root@localhost ~]# mysql -uroot -p

  輸入初始密碼,此時不能做任何事情,因爲MySQL默認必須修改密碼之後才能操作數據庫:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

  這裏有個問題,新密碼設置的時候如果設置的過於簡單會報錯:

  原因是因爲MySQL有密碼設置的規範,具體是與validate_password_policy的值有關:

 

  MySQL完整的初始密碼規則可以通過如下命令查看:

 
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
 

  密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

 

我的是已經修改過的,初始情況下第一個的值是ON,validate_password_length是8。可以通過如下命令修改:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

  設置之後就是我上面查出來的那幾個值了,此時密碼就可以設置的很簡單,例如1234之類的。到此數據庫的密碼設置就完成了。

  但此時還有一個問題,就是因爲安裝了Yum Repository,以後每次yum操作都會自動更新,需要把這個卸載掉:

[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch

  此時纔算真的完成了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章