一、安装包下载
1,登录官网
MySQL :: MySQL Downloads
2,点击社区版下载
3,找到社区服务版
4,点击“档案”Archives
就是找到历史版本;
5,选择版本进行下载
本次学习,我们使用MySQL-8.0.26版本;
由于,我们在linux-CentOS-7环境下学习使用,所以,需要使用虚拟机;
虚拟机信息==10.0.0.51-db01 1核2G内存
二、安装MySQL
1,上传安装包
[root@db01 ~]# rz -E
[root@db01 ~]# ll
...............
-rw-r--r-- 1 root root 914806904 3月 23 17:07 mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
2,解压安装包
[root@db01 ~]# tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
[root@db01 ~]# ll /usr/local/
...............
drwxr-xr-x 9 root root 129 3月 23 17:16 mysql-8.0.26-linux-glibc2.12-x86_64
查看安装包大小,是否为1.5g
[root@db01 ~]# du -sh /usr/local/mysql-8.0.26-linux-glibc2.12-x86_64/
1.5G /usr/local/mysql-8.0.26-linux-glibc2.12-x86_64/
3,创建软连接
为了方便管理
[root@db01 ~]# ln -s /usr/local/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql
4,配置MySQL命令环境变量
[root@db01 ~]# vim /etc/profile
..............
export PATH="$PATH:/usr/local/mysql/bin"
[root@db01 ~]# source /etc/profile
5,安装MySQL的依赖包
MySQL在linux-CentOS-7必备的依赖,不安装依赖就无法使用MySQL;
[root@db01 ~]# yum -y install libaio-devel
提示:MySQL运行需要/usr/lib64/libncurses.so.5作为运行依赖,
CentOS-8的系统,默认没有这个依赖,有其他解决方案;
#第一种方案:将/usr/lib64/libncurses.so.6,软连接成/usr/lib64/libncurses.so.5;
[root@db01 ~]# ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5#
#第二种方案:在线安装依赖包;
[root@db01 ~]# yum -y install ncurses-compat-libs
6,测试MySQL是否可用
[root@db01 ~]# mysql -V
mysql Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
[root@db01 ~]# mysql --version
mysql Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
三、配置MySQL基础设置
1,创建MySQL的管理用户
[root@db01 ~]# useradd -u 1001 mysql -M -s /sbin/nologin
[root@db01 ~]# id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)
2,创建数据和日志目录
[root@db01 ~]# mkdir -p /data/80/{data,logs}
3,授权目录给MySQL用户
[root@db01 ~]# chown -R mysql.mysql /data/
[root@db01 ~]# ll /data/
总用量 0
drwxr-xr-x 4 mysql mysql 30 3月 23 17:30 80
4,初始化MySQL服务
· 不安全的初始化
实际就是,不设置初始化密码的意思;
初始化之前,如果data目录和日志目录下有东西,需要全部删除,否则无法初始化成功;
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/80/data
--initialize-insecure #初始化的命令
--user=mysql #指定数据库的操作用户
--basedir=/usr/local/mysql #基础目录(mysql的原始目录)
--datadir=/data/80/data #指定数据目录在哪里?
· 安全的初始化
会随机给你生成一个密码;一般不用;
[root@db01 ~]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/80/data
· 拓展:其他版本初始化
#5.6版本
mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/80/data
#
#5.7版本和8.0版本
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/80/data
5,编辑MySQL配置文件
[root@db01 ~]# vim /etc/my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/80/data
socket=/tmp/mysql.sock
innodb_fast_shutdown=0
6,配置systemctl管理MySQL
[root@db01 ~]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL8.0 Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql#看着一行,需要配置的内容路径;
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
[root@db01 ~]# systemctl daemon-reload
[root@db01 ~]# systemctl enable --now mysql.service
7,查看是否启动成功
[root@db01 ~]# netstat -tnulp
8,其他启动方式
之后会讲......