以二進制包安裝MySQL,需要用root用戶進行操作。
1. 將下載好的包上傳到Linux服務器
2. 新建mysql用戶和用戶組
```bash
groupadd mysql
useradd -g mysql mysql
```
3. 新建MySQL的目錄和數據目錄
```bash
mkdir -p /usr/local/mysql
mkdir -p /data/mysql
chown -R mysql.mysql /data/mysql
```
4. 將二進制包解壓縮,將解壓后的目錄內的內容全部復制到/usr/local/mysql中
5. 修改/etc/profile文件,將MySQL的可執行bin目錄寫入到PATH中
```bash
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
```
6. 修改MySQL的配置文件,一般修改/etc/my.cnf即可
初次安裝,我們只修改這幾個值,未來根據內容的深入,再去修改這個文件。
```bash
[client]
socket=/data/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
```
現在這個文件已經可以滿足初始化和啟動的要求了。
修改配置文件是一件比較要求高的事情,這里給出一個參考鏈接,可以在這里生成一個:
[MySQL配置文件生成器](http://imysql.com/my-cnf-wizard.html)
7. 初始化數據庫
```bash
mysqld --initialize --user=mysql --datadir=/data/mysql
```
執行這個命令之后,MySQL會在控制臺打印一些信息:
```bash
2018-07-05T06:34:35.133123Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-07-05T06:34:36.254217Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-07-05T06:34:36.402600Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-07-05T06:34:36.467754Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 7c6c451e-801d-11e8-8abe-000c2965c37b.
2018-07-05T06:34:36.469142Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-07-05T06:34:36.470493Z 1 [Note] A temporary password is generated for root@localhost: xAHl)vCgb4Kz
```
要注意這里打印的隨機密碼。
此時檢查數據目錄,已經能發現很多文件了:

8. 啟動服務
```bash
mysqld --user=mysql --datadir=/data/mysql
```
控制臺會打印很多信息出來,如果沒有Error,且有如下這條提示,可以認為MySQL已經啟動成功了:
```bash
Version: '5.7.22' socket: '/data/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL)
```
9. 修改隨機密碼
之前步驟中,MySQL初始化結束之后在控制臺上打印出了隨機臨時密碼,這個密碼除了在本地登錄MySQL修改密碼之外沒有任何權限。
登錄MySQL,執行下面的命令修改密碼:
```bash
set password = PASSWORD('youcai888');
```
不過這個命令會在未來的版本中被替換掉,查看warning信息就會發現:
```bash
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1287 | 'SET PASSWORD = PASSWORD('<plaintext_password>')' is deprecated and will be removed in a future release. Please use SET PASSWORD = '<plaintext_password>' instead |
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
```
至此我們就安裝配置完成了,現在就可以開始進一步的學習MySQL了。