Generic Binary Install MySQL
1、如果未在本地安装依赖库,则数据目录初始化以及后续的服务器启动步骤将会失败。安装libaio库的代码如下
yum install libaio -y
2、添加mysql组和mysql用户。所有的文件和目录应该在mysql用户下
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
3、解压二进制文件
cd /opt
wget "https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz"
tar Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
4、制作软连接
ln -s /usr/loacl/mysql-8.0.20-linux-glibc2.12-x86_64 mysql
du -h --max-depth=1
此命令可以看到如下信息
2.0G ./mysql-8.0.20-linux-glibc2.12-x86_64 #加压后的大小是2个G
5、MySQL各个目录的功能
[root@nodedb local]# ll mysql/
total 452
drwxr-xr-x. 2 root root 4096 Jan 15 15:46 bin #存放MySQL可执行的脚本
drwxr-xr-x. 2 root root 82 Jan 15 15:46 docs #存放文档信息
drwxr-xr-x. 3 root root 4096 Jan 15 15:44 include #由于MySQL是C和C++编写的,因次我们会在该目录下看到一些以"*.h”的头文件信息
drwxr-xr-x. 6 root root 4096 Jan 15 15:46 lib #存放依赖包
-rw-r--r--. 1 7161 31415 335809 Oct 7 01:44 LICENSE
-rw-r--r--. 1 7161 31415 101807 Oct 7 01:44 LICENSE.router
drwxr-xr-x. 4 root root 28 Jan 15 15:44 man #存放man帮助的信息
-rw-r--r--. 1 7161 31415 687 Oct 7 01:44 README
-rw-r--r--. 1 7161 31415 700 Oct 7 01:44 README.router
drwxr-xr-x. 28 root root 4096 Jan 15 15:46 share #存放支持的字符集信息以及一些错误信息
drwxr-xr-x. 2 root root 86 Jan 15 15:46 support-files #存放MySQL服务的管理脚本,比如我们想要将MySQL变成一个Linux开机自启动服务时,就得使用该目录下的mysql.service脚本!
6、创建必要的目录并将所有权更改为mysql
cd mysql
mkdir mysql-files
chmod 750 mysql-files
chown -R mysql .
chgrp -R mysql .
7、初始化mysql会生成一个临时密码
bin/mysqld --initialize --user=mysql
8、设置SSL的RSA
bin/mysql_ssl_rsa_setup
9、将二进制文件的所有权更改为root,数据文件的所有权更改为mysql:
chown -R root .
chown -R mysql data/ mysql-files/
10、将启动脚本复制到init.d中
[root@nodedb ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql #将MySQL加入到服务自启动
[root@nodedb ~]#
[root@nodedb ~]# rm -rf /etc/my.cnf #删除它表示以mysql所有的默认参数去启动
[root@nodedb ~]#
[root@nodedb ~]# /etc/init.d/mysql start #启动mysql服务
Starting MySQL.Logging to '/usr/local/mysql/data/nodedb.unity.org.cn.err'.
. SUCCESS!
[root@nodedb ~]#
[root@nodedb ~]# ps -ef | grep mysql #查看mysql的启动进程
root 41287 1 0 16:25 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/nodedb.unity.org.cn.pid
mysql 41372 41287 4 16:25 pts/0 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=nodedb.unity.org.cn.err --pid-file=/usr/local/mysql/data/nodedb.unity.org.cn.pid
root 41426 2759 0 16:25 pts/0 00:00:00 grep --color=auto mysql
[root@nodedb ~]#
[root@nodedb ~]#netstat -untalp | grep 3306 #查看mysql启动的端口,默认是3306
tcp6 0 0 :::3306 :::* LISTEN 41372/mysqld
tcp6 0 0 :::33060 :::* LISTEN 41372/mysqld #这个33060是MySQL的守护进程
11、将mysql的二进制文件导出到PATH环境变量中
export PATH=$PATH:/usr/local/mysql/bin
Note:
error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
遇到上述错误时,使用以下方式修改即可
ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libtinfo.so.5