MySQL数据库安装部署(Linux 二进制方式安装)
1.前期准备(检查安装环境)
# 确认操作系统数据库服务安装环境
-- 查看操作系统的版本信息
[root@bj-25 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
-- 查看操作系统的网卡地址
[root@bj-25 ~]# ip address show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:2e:a6:c1 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute eth0
-- 查看系统本地域名解析信息
[root@bj-25 ~]# cat /etc/hosts
...省略部分信息...
10.0.0.200 bj-25
-- 查看防火墙服务是否关闭
[root@bj-25 ~]# systemctl is-active firewalld
unknown
[root@bj-25 ~]# systemctl is-enabled firewalld
disabled
-- 查看selinux安全策略是否关闭
[root@bj-25 ~]# getenforce
Disabled
-- 清楚系统自带的mariadb数据库服务相关的程序包
[root@bj-25 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@bj-25 ~]# yum remove -y mariadb-libs
-- 安装数据库服务程序所需的依赖软件包
[root@bj-25 ~]# yum install -y libaio-devel
-- 需要修改链接库信息(只有centos 8 系统才需要进行操作修改)
[root@bj-25 ~]# ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
或者
[root@bj-25 ~]# yum install ncurses-compat-libs
2.下载所需MySQL安装包
官网地址:www.mysql.com |
---|
![]() |
![]() |
![]() |
![]() |
![]() |
3上传安装包并解压
# 数据库服务程序详细安装过程
-- 上传数据库程序软件包
[root@bj-25 ~]# cd /usr/local/
[root@bj-25 local]# rz -y
-- 解压数据库服务软件程序压缩包
[root@bj-25 local]# tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
-- 创建数据库服务程序目录的软链接
[root@bj-25 local]# ln -s mysql-8.0.26-linux-glibc2.12-x86_64 mysql
-- 配置数据库服务程序环境变量
[root@bj-25 local]# tail -1 /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@bj-25 local]# source /etc/profile
-- 可以获取数据库服务版本信息表示环境变量配置生效
[root@bj-25 local]# mysql -V
mysql Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
-- 创建数据库服务管理用户信息
[root@bj-25 local]# useradd mysql
-- 创建数据库服务相关目录并进行目录信息进行授权
[root@bj-25 local]# mkdir -p /data/3306/data /data/3306/logs
[root@bj-25 local]# chown -R mysql. /data/
4.进行初始MySQL数据库服务操作(8.0版本数据库)
数据库初始化命令应用解读:
核心程序命令 | 初始化核心参数 | 数据管理用户 | 数据存储路径 | 数据存放目录 |
---|---|---|---|---|
mysqld | --initialize-insecure | --user=mysql | --basedir=/usr/local/mysql | --datadir=/data/3306/data |
数据库初始化命令实践操作:
# 数据库服务初始化操作过程
-- 数据库初始化过程,就是将数据库默认的系统数据信息创建出来,以及根据配置文件激活数据库的特定功能;
[root@bj-25 local]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
2022-10-11T16:33:20.057586Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.26-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.26) initializing of server in progress as process 33820
2022-10-11T16:33:20.099560Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-10-11T16:33:20.490688Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-10-11T16:33:21.202672Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
2022-10-11T16:33:21.203068Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
2022-10-11T16:33:21.292047Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
# 数据库服务初始化经典报错信息
报错情况-01:
[报错信息]:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[解决方法]:
yum install -y libaio-devel
报错情况-02:
[报错信息]:
initialize specified but the data directory has files in it. Aborting.
The designated data directory /data/3306/data/ is unusable. You can remove all files that the server added to it.
[解决方法]:
rm -rf /data/3306/data/*
说明:数据库服务初始化的过程,是用于让数据库服务创建出一些默认的数据信息,以及识别存储数据目录信息
5.编写生成MySQL数据库配置文件
[root@bj-25 ~]# cat > /etc/my.cnf <<eof
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
eof
-- 创建数据库服务运行需要加载的my.cnf配置模板文件
6.启动运行MySQL数据库服务脚本
# 查看数据库服务默认启动脚本文件
[root@bj-25 ~]# ls -l /usr/local/mysql/support-files/mysql.server
-rwxr-xr-x 1 7161 31415 10576 7月 1 2021 /usr/local/mysql/support-files/mysql.server
-- 数据库服务默认的启动脚本文件
# 设置数据库服务程序启动运行文件
[root@bj-25 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 启动数据库服务程序利用脚本文件
[root@bj-25 ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/3306/data/bj-25-01.edu.err'.
SUCCESS!
[root@bj-25 ~]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
-- 启动和停止数据库服务均成功
-- 设置数据库服务开机自动运行
[root@bj-25 ~]# chkconfig --add mysqld
# 启动数据库服务程序利用脚本文件 (systemd方式)
-- 将service管理服务方式转换为systemd管理服务方式 (注意:在配置systemctl前需要用/etc/init.d/mysqld stop数据库)
[root@bj-25 ~]# systemctl enable mysqld
mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld on
[root@bj-25 ~]# systemctl start mysqld
# 检查确认数据库服务是否启动成功
--检查端口
[root@bj-25 ~]# netstat -lntup|grep 3306
tcp6 0 0 :::33060 :::* LISTEN 67809/mysqld
tcp6 0 0 :::3306 :::* LISTEN 67809/mysqld
--检查服务进程
[root@bj-25 ~]# ps -ef|grep mysql
root 67663 1 0 01:04 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --pid-file=/data/3306/data/xiaoQ-01.edu.pid
mysql 67809 67663 0 01:04 pts/0 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=xiaoQ-01.edu.err --pid-file=/data/3306/data/xiaoQ-01.edu.pid --socket=/tmp/mysql.sock
7.登录管理MySQL数据库服务程序
[root@bj-25 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.26 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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.
mysql>
8.其他说明
不同数据库服务版本安装初始化差异说明:
版本信息 | 命令信息 | 初始化操作参数 | 备注说明 |
---|---|---|---|
5.6 | mysql_install_db | 初始化的命令不一致,参数相同(无管理员密码) | |
5.7 8.0 | mysqld | --initialize-insecure | 表示不安全方式初始化(无管理员密码) |
--initialize | 表示安全方式初始化(有随机默认管理员密码) |
安全方式初始化特性:
将会生成临时密码(12位密码 需要满足4种复杂度),必须在首次登录数据库时改掉,才能正常管理数据库;
使用安全模式初始化数据库后,需要利用临时密码登录数据库服务,并设置管理员用户密码信息
mysql > alter user root@'localhost' identified by '123456';
-- 如果不修改设置管理员用户密码,使用临时密码只是能登录数据库,但是无法管理数据库