安装环境
Kali GNU/Linux Rolling 64 位
mysql-5.7.20-linux-glibc2.12-x86_64
安装步骤
下载安装包
创建Mysql 系统用户
安装Mysql
初始话Mysql
启动Mysql
使用Mysql
配置环境变量
基础知识了解
注意:安装包有 源码包 和 二进制 包两种形式。

mysql-5.7.20.tar.gz 是源码包
mysql-5.7.20-linux-glibc2.12-x86_64 是二进制包
如何区分源码包和二进制包呢?
一般情况下,源码包的名称很简练,只有是一个只有版本号的tar格式的压缩文件,而二进制包由于安装环境要求较为严格,会在名称中包含版本号、适应平台、适应类型等信息。

源码包和二进制包的安装有什么不同?
源码包安装时要先进行编译,需要花费较多的时间;
二进制包是已经编译好的文件,可以直接进行安装。
本问主要介绍二进制包的安装方法。

详细步骤介绍
1.下载安装包
下载地点:https://dev.mysql.com/downloads/mysql/

可以在里面输入版本及使用平台,就会出现对应的下载链接
我的系统是kali rolling 64位,所以选择的是 mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

2.创建Mysql 系统用户
root@kali:~# groupadd mysql
root@kali:~# useradd -r -g mysql -s /bin/false mysql

3. 安装MySQL
将之前下载的mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 安装包解压到/usr/local目录里,并将目录名称改为mysql ,此时路径为 /usr/loca/mysql/。 进入mysql 目录,然后创建mysql-files目录,并设置权限。
解压:

root@kali:~/下载# tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local
1
重命名:

root@kali:/usr/local# mv /usr/local/mysql-5.7.20-linux-glibc2.5-x86_64/ /usr/local/mysql/
1
进入MySQL目录:

root@kali:/usr/local# cd /usr/local/mysql/
1
创建mysql-files目录:

root@kali:/usr/local/mysql# mkdir mysql-files
1
赋予750权限:

root@kali:/usr/local/mysql# chmod 750 mysql-files
root@kali:/usr/local/mysql# ls -l -d  mysql-files
drwxr-s--- 2 root mysql 4096 11月 13 13:22 mysql-files

将当前目录的拥有者设置为mysql 用户和mysql 组:

root@kali:/usr/local/mysql# chown -R mysql  .
root@kali:/usr/local/mysql# chgrp -R mysql  .
root@kali:/usr/local/mysql# ls -l
总用量 56
drwxr-sr-x  2 mysql mysql  4096 11月 13 13:19 bin
-rw-r--r--  1 mysql mysql 17987 11月 13 13:19 COPYING
drwxr-sr-x  2 mysql mysql  4096 11月 13 13:19 docs
drwxr-sr-x  3 mysql mysql  4096 11月 13 13:19 include
drwxr-sr-x  5 mysql mysql  4096 11月 13 13:20 lib
drwxr-sr-x  4 mysql mysql  4096 11月 13 13:20 man
drwxr-s---  2 mysql mysql  4096 11月 13 13:22 mysql-files
-rw-r--r--  1 mysql mysql  2478 11月 13 13:20 README
drwxr-sr-x 28 mysql mysql  4096 11月 13 13:20 share
drwxr-sr-x  2 mysql mysql  4096 11月 13 13:20 support-files

4. 初始化MySQL
到MySQL的安装目录,执行命令,初始化MySQL
执行初始化命令:

root@kali:/usr/local/mysql# bin/mysqld --initialize --user=mysql
2017-11-13T05:30:52.100528Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use    --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-11-13T05:30:53.953848Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-11-13T05:30:54.511297Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-11-13T05:30:54.706290Z 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: d1d03f87-c833-11e7-86a5-74dfbf526f83.
2017-11-13T05:30:54.765179Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-11-13T05:30:54.766983Z 1 [Note] A temporary password is generated for root@localhost: jz>QUrrKf41O

注意:A temporary password is generated for root@localhost: jz>QUrrKf41O 这里是自动生成的初始密码 jz>QUrrKf41O,要记住,等会要用

配置ssl加密相关:

root@kali:/usr/local/mysql# bin/mysql_ssl_rsa_setup
Generating a 2048 bit RSA private key
..................+++
...........................................................+++
writing new private key to 'ca-key.pem'
-----
Generating a 2048 bit RSA private key
........+++
.....................+++
writing new private key to 'server-key.pem'
-----
Generating a 2048 bit RSA private key
..........................................................................................................     .............................................................................+++
.+++
writing new private key to 'client-key.pem'
-----

到此,MySQL安装初始化完成, 再执行一下命令修改权限

root@kali:/usr/local/mysql# chown -R root .
root@kali:/usr/local/mysql# chown -R mysql data/  mysql-files/
root@kali:/usr/local/mysql# ls -l
总用量 60
drwxr-sr-x  2 root  mysql  4096 11月 13 13:19 bin
-rw-r--r--  1 root  mysql 17987 11月 13 13:19 COPYING
drwxr-s---  5 mysql mysql  4096 11月 13 13:34 data
drwxr-sr-x  2 root  mysql  4096 11月 13 13:19 docs
drwxr-sr-x  3 root  mysql  4096 11月 13 13:19 include
drwxr-sr-x  5 root  mysql  4096 11月 13 13:20 lib
drwxr-sr-x  4 root  mysql  4096 11月 13 13:20 man
drwxr-s---  2 mysql mysql  4096 11月 13 13:22 mysql-files
-rw-r--r--  1 root  mysql  2478 11月 13 13:20 README
drwxr-sr-x 28 root  mysql  4096 11月 13 13:20 share
drwxr-sr-x  2 root  mysql  4096 11月 13 13:20 support-files

*注意事项:
mysql初始化工作依赖libaio包,如果没有安装就会出现这个错误*

bin/mysqld: error while loading shared libraries: libaio.so.1: cannot  open shared object file: No such file or directory”。
1
检查是否已安装:

yum search libaio
1

apt-cache search libaio
1
如果没有,则安装:

yum install libaio
1

apt-get install libaio1
1
yum适用于centos/readhat等系统,apt-get适用于ubuntu、debian系统,请按自己需要选择。

5. 启动MySQL
root@kali:/usr/local/mysql# cp support-files/mysql.server /etc/init.d/
启动MySQL服务:

root@kali:/usr/local/mysql# systemctl start mysql.server
1
停止MySQL服务:

root@kali:/usr/local/mysql# systemctl stop mysql.server
1
6. 使用MySQL
root@kali:/usr/local/mysql# bin/mysql -u root -p
Enter password:
1
2
注意:这里要求输入password ,就是之前初始化时自动生产的密码jz>QUrrKf41O

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
1
出现错误,这是由于MySQL 的服务没有开启。我们重新开启:

root@kali:/usr/local/mysql# systemctl start mysql.server
我们再次启动MySQL:

root@kali:/usr/local/mysql# bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights  reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input     statement.

成功了。

7. 修改密码
初始化MySQL时生成的随机密码,只能用于初次登录。如果你要使用SQL语句作其他操作,就要修改密码后才能进行了。否则会报错

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.”。
1
我们通过SET指令修改密码。

mysql> SET PASSWORD=PASSWORD('newpassword');
Query OK, 0 rows affected, 1 warning (0.00 sec)
1
2
8. 修改环境变量
到这里,我们已经成功安装好了MySQL, 但是使用时会出现:

root@kali:~# mysql
bash: mysql: 未找到命令
1
2
这是因为我们没有修改环境变量,用vim 修改 ~/.bashrc文件

root@kali:~# vim .bashrc
1
并添加下面一句话

export PATH="/usr/local/mysql/bin:$PATH"
1
然后回到命令行执行下面这条命令:

root@kali:~# source .bashrc
1
然后该用户无论在哪里,都可以直接使用mysql -u root -p 来打开mysql 了