程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> CentOS 7 中以命令行方式安裝 MySQL 5.7.11 for Linux Generic 二進制版本教程詳解

CentOS 7 中以命令行方式安裝 MySQL 5.7.11 for Linux Generic 二進制版本教程詳解

編輯:關於MYSQL數據庫

MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定發行版安裝包(如 .rpm)以及二進制通用版安裝包(.tar.gz)。一般情況下,很多項目都傾向於采用二進制通用安裝包形式來進行安裝配置,自定義非常方便。但在安裝過程中發現,其實官方提供的安裝說明文件太過簡單,而且裡面的參數還有問題,依照執行後,mysql 服務啟動報錯,查找了一些資料並反復試驗後,自己總結出一套切實可行的安裝配置流程,具體如下:

1、下載 MySQL for Linux Generic 二進制版本安裝包(.tar.gz),這裡以 5.7.11 版本為例。

2、我一般習慣於將 MySQL 安裝到 /opt 目錄下,所以我將 MySQL 安裝包文件復制到 /opt 目錄下,切換為 root 賬號後執行以下命令:

# tar -zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
# ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql 
# cd mysql

建立一個 mysql 的軟連接,是為了以後方便配置與操作。

3、5.7.11 版本的通用二進制安裝包經解壓後得到的 MySQL 目錄,內部並未包含數據文件存放的目錄,所以需要單獨再創建一個子目錄用於存放數據文件,比如取名為 data,在第二步命令後(確保在 /opt/mysql 目錄下),繼續執行如下命令:

# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql
# mkdir data
# chown -R root:root .
# bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
# bin/mysql_ssl_rsa_setup --datadir=/opt/mysql/data

這裡特別說明一下,根據官方文檔說法,從 5.7.6 版本開始,MySQL 初始化使用 mysqld --initialize 命令,不再使用 mysql_install_db 命令了。但是官方文檔給出的 mysqld --initialize 命令並沒有給出 --basedir 以及 --datadir 參數,因為它默認使用 /etc/my.cnf 配置文件。有些 Linux 發行版在安裝過程中可能會默認生成這個 mysql 配置文件並保存在 /etc 目錄下,而默認配置文件中的 basedir、datadir 是被注釋的,沒有實際內容,這樣 mysqld 實際上還是不知道當前的 basedir、datadir 具體是哪個目錄。所以這裡就通過命令行參數指定我們的自定義目錄。包括 mysql_ssl_rsa_setup 命令也要指定 datadir 目錄,因為數據庫需要的密鑰文件也都和數據文件保存在一起,都位於 datadir 目錄內。

4、上述工作完成後,先不慌啟動數據庫服務,這時還要創建 MySQL 服務的配置文件 my.cnf。這個文件可以從 /opt/mysql/support-files 子目錄下找到一個叫 my-default.cnf 的配置樣例文件,然後復制一個出來,改名為 my.cnf 並放到 /opt/mysql 下即可。根據 MySQL 的規則,它的配置文件必須以 my.cnf 命名,讀取的順序是先嘗試讀取 /etc/my.cnf,如果不存在則再讀取 basedir 目錄下的 my.cnf,如果系統環境變量沒有 basedir,則嘗試讀取服務啟動所在當前目錄下的 my.cnf,這裡就是 /opt/mysql/my.cnf 這種情況,如果還是不存在,則讀取當前用戶家目錄下的 .mysql/my.cnf(需要看官方文檔確認一下,記不清了)。所以,我們這裡只需保證在 /opt/mysql 下有一個 my.cnf,修改其中的內容為如下:

basedir = /opt/mysql
datadir = /opt/mysql/data
log-error = /var/log/mysql-error.log

其余的不變。根據官方文檔,log-error 用來指定服務啟動後的運行信息日志文件路徑,運行信息包括 Notice、Error 等類型的日志。

5、配置文件修改保存好後,就可以啟動服務了,確保當前目錄為 /opt/mysql,然後運行以下命令:

# bin/msyqld_safe --user=mysql &

這時服務就可以正常啟動了。你還可以通過命令 netstat -na -t 查看 MySQL 服務的端口 3306 是否已經處在監聽狀態,如果是,則表示服務啟動正常。當然,你也可以查看日志文件的內容來確定,我們這裡因為在已在配置文件中指定日志文件為 /var/log/mysql-error.log,所以查看該文件即可。

6、在本機登錄 MySQL 服務,從 5.7.10 版本開始不允許 root 空密碼登錄了。其實在執行 mysqld --initialize 後系統就會為 root 生成一個初始化密碼,並在屏幕標准輸出時顯示出來,這個要記住!用這個密碼第一次登錄後,才能再修改密碼,這裡假定系統生成的初始化密碼為 xxxxxx,命令如下:

# bin/mysql --user=root --password=xxxxxx

這樣就可以登錄 MySQL 服務器了。

7、登錄以後,系統要求必須修改 root 賬號的密碼,MySQL 命令如下:

mysql> set password=password('1234');

這樣就可以把 root 賬號改為 1234 了。

8、在 Linux 下為了安全,默認是不允許 MySQL 服務器本機以外的機器訪問 MySQL 數據庫服務的,因此需要重新授權 root 賬號。方便其他機器遠程訪問 MySQL 服務器,MySQL 命令如下:

mysql> grant all privileges on *.* to root@'%' identified by '1234';
mysql> flush privileges;

這樣就可以允許從其他機器用 root 賬號遠程登錄 MySQL 服務器了,可以用下面的 MySQL 命令來驗證一下:

mysql> use mysql;
mysql> select host,user from user;
+-----------+-----------+
| host | user |
+-----------+-----------+
| % | root |
| localhost | mysql.sys |
| localhost | root |
+-----------+-----------+
3 rows in set (0.00 sec)

證明系統表 user 中已經增加了一條關於 root 遠程登錄的記錄。

9、補充一下如何停止 mysql 服務的命令:

# mysqladmin --user=root --password shutdown

這裡 root 是 mysql 數據庫的 root,並不是操作系統的賬號,這點不要搞混了,該命令會提示輸入 mysql root 的密碼,正確的話就會停止 mysql 服務了。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved