从官方编译好的二进制文件安装MySQL 8

从官方二进制包安装MySQL

主要参考的是官方文档,https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html。系统是ubuntu18.04。libaxio使用apt安装的时候出现依赖问题,推测是之前手动安装的其他库不能被apt识别导致。我从这里(https://archlinux.pkgs.org/rolling/archlinux-core-x86_64/libaio-0.3.112-1-x86_64.pkg.tar.xz.html)下载了编译好的libaio文件,然后手动解压放到对应目录上了。

创建MySQL用户

按照官网的说明,需要新建一个用户mysql,所属用户组mysql

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

第二步参数是,-r创建一个系统账户,-g指定所属用户组,-s指定登陆Shell,/bin/false作为登陆Shell时,用户不能登陆系统,参考https://blog.csdn.net/zhangxinrun/article/details/5583540。

使用cat /etc/group可以在最后面看到有mysql用户组,cat /etc/passwd可以看到设置的用户和对应的登陆Shell信息,证明创建用户成功。

解压缩下载的MySQL

我下载的MySQL压缩包名称是mysql-8.0.17-linux-x86_64-minimal.tar.xz。官方说明的是解压安装位置是/usr/local,我自定义安装路径没有放在那个位置,而是把解压后的文件放在/opt/mysql-8-0-17

# pwd
/opt/mysql-8-0-17
# ls
bin   include  LICENSE         man     README.router  share          var
docs  lib      LICENSE.router  README  run            support-files

目录/opt/mysql-8-0-17/bin通过编辑/etc/profile已经添加到了环境变量中,并且设置好已经能用了。

我用ls -l列出来发现文件的用户名和用户组显示是数字而不是英文名称,暂时先不管。

# ls -l
总用量 476
drwxr-xr-x  2 7161 31415   4096 6月  27 04:09 bin
drwxr-xr-x  2 7161 31415   4096 6月  27 04:09 docs
drwxr-xr-x  3 7161 31415   4096 6月  27 04:09 include
drwxr-xr-x  6 7161 31415   4096 6月  27 04:09 lib
-rw-r--r--  1 7161 31415 336955 6月  25 18:23 LICENSE
-rw-r--r--  1 7161 31415 101805 6月  25 18:23 LICENSE.router
drwxr-xr-x  4 7161 31415   4096 6月  27 04:09 man
-rw-r--r--  1 7161 31415    687 6月  25 18:23 README
-rw-r--r--  1 7161 31415    700 6月  25 18:23 README.router
drwxrwxr-x  2 7161 31415   4096 6月  27 04:09 run
drwxr-xr-x 28 7161 31415   4096 6月  27 04:09 share
drwxr-xr-x  2 7161 31415   4096 6月  27 04:09 support-files
drwxr-xr-x  3 7161 31415   4096 6月  27 04:09 var

创建mysql-files文件夹

在mysql安装目录下新建mysql-files用于保存MySQL的系统变量。

# pwd
/opt/mysql-8-0-17
# mkdir mysql-files
# ls -l
总用量 480
drwxr-xr-x  2 7161 31415   4096 6月  27 04:09 bin
drwxr-xr-x  2 7161 31415   4096 6月  27 04:09 docs
drwxr-xr-x  3 7161 31415   4096 6月  27 04:09 include
drwxr-xr-x  6 7161 31415   4096 6月  27 04:09 lib
-rw-r--r--  1 7161 31415 336955 6月  25 18:23 LICENSE
-rw-r--r--  1 7161 31415 101805 6月  25 18:23 LICENSE.router
drwxr-xr-x  4 7161 31415   4096 6月  27 04:09 man
drwxr-xr-x  2 root root    4096 8月  18 13:10 mysql-files
-rw-r--r--  1 7161 31415    687 6月  25 18:23 README
-rw-r--r--  1 7161 31415    700 6月  25 18:23 README.router
drwxrwxr-x  2 7161 31415   4096 6月  27 04:09 run
drwxr-xr-x 28 7161 31415   4096 6月  27 04:09 share
drwxr-xr-x  2 7161 31415   4096 6月  27 04:09 support-files
drwxr-xr-x  3 7161 31415   4096 6月  27 04:09 var

按照说明,需要对mysql-files的权限信息进行设置。

# chown mysql.mysql mysql-files
# chmod 750 mysql-files
# ls -l
总用量 480
drwxr-xr-x  2  7161 31415   4096 6月  27 04:09 bin
drwxr-xr-x  2  7161 31415   4096 6月  27 04:09 docs
drwxr-xr-x  3  7161 31415   4096 6月  27 04:09 include
drwxr-xr-x  6  7161 31415   4096 6月  27 04:09 lib
-rw-r--r--  1  7161 31415 336955 6月  25 18:23 LICENSE
-rw-r--r--  1  7161 31415 101805 6月  25 18:23 LICENSE.router
drwxr-xr-x  4  7161 31415   4096 6月  27 04:09 man
drwxr-x---  2 mysql mysql   4096 8月  18 13:10 mysql-files
-rw-r--r--  1  7161 31415    687 6月  25 18:23 README
-rw-r--r--  1  7161 31415    700 6月  25 18:23 README.router
drwxrwxr-x  2  7161 31415   4096 6月  27 04:09 run
drwxr-xr-x 28  7161 31415   4096 6月  27 04:09 share
drwxr-xr-x  2  7161 31415   4096 6月  27 04:09 support-files
drwxr-xr-x  3  7161 31415   4096 6月  27 04:09 var
# bin/mysql_ssl_rsa_setup

执行bin/mysql_ssl_rsa_setup需要点时间,随后输出的信息是:

2019-08-18T04:15:56.153392Z 0 [System] [MY-013169] [Server] /opt/mysql-8-0-17/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 3076
2019-08-18T04:16:30.473906Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Hnqslhzxs8%&
2019-08-18T04:16:54.089176Z 0 [System] [MY-013170] [Server] /opt/mysql-8-0-17/bin/mysqld (mysqld 8.0.17) initializing of server has completed

内容没有出现错误的提示,所以继续执行下面的步骤。

命令bin/mysqld_safe --user=mysql是以安全模式启动MySQL。后面带有&是启动为后台进程。

启动后root用户的密码是上面的Hnqslhzxs8%&,需要尽快修改用户的密码。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

参考https://dev.mysql.com/doc/refman/8.0/en/default-privileges.html

你可能感兴趣的:(技术相关)