天天看點

centos7 安裝MySQL

在centos7中已經将mysql從yum應用清單中移除,并使用mariadb代替,是以直接通過yum install mysql-server安裝時會提示沒有可用軟體包mysql-server。在centos7中安裝mysql需要重新添加mysql的存儲庫。本文參考官方文檔:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

1、添加MySQL Yum存儲庫

首先要将mysql yum存儲庫添加到yum源目錄中/etc/yum.repos.d/,不需要手動添加。按照以下步驟來即可。

①擷取下載下傳連接配接,在這個頁面中找到最新的下載下傳連接配接。 https://dev.mysql.com/downloads/repo/yum/   不要下載下傳錯版本啦(可看下邊圖檔)。不知道可以通過指令檢視 uname -a

② 安裝下載下傳的rpm包,這一步會自動将mysql yum存儲庫添加到yum源目錄中

[root@mini ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

[root@mini ~]# yum localinstall mysql80-community-release-el7-1.noarch.rpm

# 經過上邊兩個步驟後可以發現 /etc/yum.repos.d/ 目錄下多了兩個檔案
# mysql-community.repo   mysql-community-source.repo      
centos7 安裝MySQL
centos7 安裝MySQL

2、安裝MySQL 

 經過上邊的步驟後就可以直接安裝mysql了

1)選擇mysql的版本,安裝最新版請忽略這一步。我選的mysql5.7,最新的8.0

vi 修改 /etc/yum.repos.d/mysql-community.repo 檔案,選擇想要安裝的版本将 enabled=1,将其它版本改為enabled=0,如下圖

centos7 安裝MySQL

2) 安裝mysql

[root@mini ~]# yum install mysql-community-server      
centos7 安裝MySQL

3)啟動mysqld服務,啟動服務後檢視服務的狀态,

[root@mini ~]# systemctl start mysqld   # 啟動服務
[root@mini ~]# systemctl status mysqld  # 檢視服務狀态      

4)檢視密碼,安裝後會有一個初始密碼,在mysql日記檔案中,/var/log/mysqld.log,如下,u37jyNpeq#bW就是我的初始密碼

[root@mini ~]# grep 'temporary password' /var/log/mysqld.log
2018-10-16T08:52:56.573201Z 1 [Note] A temporary password is generated for root@localhost: u37jyNpeq#bW      

5)修改密碼,以資料庫root使用者登入mysql,修改密碼,一定要修改密碼,不修改無法對資料庫進行操作。實作的預設密碼政策validate_password要求密碼包含至少一個大寫字母,一個小寫字母,一個數字和一個特殊字元,并且密碼總長度至少為8個字元。修改密碼後重新整理權限表

[root@mini ~]# mysql -u root -p   #  第一次登入mysql,密碼為初始密碼
Enter password:       
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'abcdABCD-1';  # 修改密碼
Query OK, 0 rows affected (0.00 sec)
      
mysql> flush privileges;      

3、設定編碼為utf-8

1)可先在mysql中檢視自己的編碼是否為utf-8,是的就不用在設定了

mysql> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)      

2)在 /etc/my.cnf 檔案中的 [mysqld]  标簽下添加

character-set-server=utf8
collation-server=utf8_general_ci      

3)重新開機mysqld服務  systemctl restart mysqld

[root@mini ~]# systemctl restart mysqld      

4)再次登入myslq檢視編碼就結束了

4、允許遠端登入

mariadb預設是拒絕 root 遠端登入的。這裡用的是 navicat 軟體連接配接資料庫

1)關閉防火牆

① 關閉防火牆 systemctl stop firewalld 

systemctl stop firewalld      

② 在不關閉防火牆的情況下,允許某端口的外來連結。步驟如下,開啟3306端口,重新開機防火牆

[root@mini ~]# firewall-cmd --query-port=3306/tcp  # 檢視3306端口是否開啟
no
[root@mini ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent  # 開啟3306端口
success
[root@mini ~]# firewall-cmd --reload  # 重新開機防火牆
success
[root@mini ~]# firewall-cmd --query-port=3306/tcp  # 檢視3306端口是否開啟      

2)先檢視mysql資料庫中的user表

[root@mini ~]# mysql -u root -p  # 先通過本地連結進入資料庫

MariaDB [(none)]> use mysql;

MariaDB [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| mini      | root |
+-----------+------+
rows in set (0.00 sec)      

3)将與主機名相等的字段改為 "%" ,我的主機名為mini,這裡就隻是資料表的更新操作而已,按照自己的來就行

MariaDB [mysql]> update user set host='%' where host='mini';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| %         | root |
| 127.0.0.1 | root |
| localhost | root |
+-----------+------+
rows in set (0.00 sec)      

4)重新整理權限表,或重新開機mariadb服務,一下二選一即可

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)      
[root@mini ~]# systemctl restart mariadb      

5)到這裡就可以通過工具連接配接MySQl資料庫了。

繼續閱讀