安装环境
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/
进入MySQL目录:
root@kali:/usr/local# cd /usr/local/mysql/
创建mysql-files目录:
root@kali:/usr/local/mysql# mkdir mysql-files
赋予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'
-----
........+++
.....................+++
writing new private key to 'server-key.pem'
.......................................................................................................... .............................................................................+++
.+++
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/
总用量 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
-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”。
检查是否已安装:
yum search libaio
或
apt-cache search libaio
如果没有,则安装:
yum install libaio
apt-get install libaio1
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
停止MySQL服务:
root@kali:/usr/local/mysql# systemctl stop mysql.server
6. 使用MySQL
root@kali:/usr/local/mysql# bin/mysql -u root -p
Enter password:
2
注意:这里要求输入password ,就是之前初始化时自动生产的密码jz>QUrrKf41O
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
出现错误,这是由于MySQL 的服务没有开启。我们重新开启:
我们再次启动MySQL:
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.”。
我们通过SET指令修改密码。
mysql> SET PASSWORD=PASSWORD('newpassword');
Query OK, 0 rows affected, 1 warning (0.00 sec)
8. 修改环境变量
到这里,我们已经成功安装好了MySQL, 但是使用时会出现:
root@kali:~# mysql
bash: mysql: 未找到命令
这是因为我们没有修改环境变量,用vim 修改 ~/.bashrc文件
root@kali:~# vim .bashrc
并添加下面一句话
export PATH="/usr/local/mysql/bin:$PATH"
然后回到命令行执行下面这条命令:
root@kali:~# source .bashrc
然后该用户无论在哪里,都可以直接使用mysql -u root -p 来打开mysql 了