以二进制包安装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
```
要注意这里打印的随机密码。
此时检查数据目录,已经能发现很多文件了:
![](https://box.kancloud.cn/52d4cb3fb11f56542cf11b5aae1f576e_552x280.png)
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了。