一、安装方式

安装方式特征说明
采用二进制方式安装直接解压缩二进制程序包,进行简单的配置和初始化操作即可
采用rpm包方式安装需要从官方网站下载rpm程序包,并且需要考虑系统环境的兼容性,解决软件程序包依赖(Bundle结尾的)
采用yum包方式安装需要根据官方网站说明,配置yum下载的仓库源信息,在联网情况下进行安装部署
采用源码包方式安装需要从官方网站下载源码程序包,并且需要解决程序包依赖问题,以及需要采用编译安装 cmake -- make && make install 用于数据库二次开发 30~1小时

二、二进制部署

1)系统初始化

  1. 确认操作系统数据库服务安装环境

    cat /etc/redhat-release
    cat >>/etc/hosts <<EOF
    ...省略部分信息...
    192.168.126.11 db01
    192.168.126.12 db02
    192.168.126.13 db03
    EOF
    
  2. 关闭防火墙

    systemctl disable --now firewalld && systemctl is-enabled firewalld
    systemctl status firewalld
    
  3. 禁用selinux

    sed -ri 's#(SELINUX=)enforcing#\1disabled#' /etc/selinux/config
    grep ^SELINUX= /etc/selinux/config
    setenforce 0
    getenforce
    

    #:分隔符,而不是传统的/

    -r:扩展的正则表达式

    ():捕获组

    \1:捕获后引用

  4. 清除系统自带的mariadb数据库服务相关的程序包

    yum remove `rpm -qa|grep mariadb` -y
    
  5. Centos8额外步骤(需要修改链接库信息)

    ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5 或者 yum install ncurses-compat-libs
    

2)下载二进制文件

利用官方网址获取数据库软件程序:https://www.mysql.com/

选择官网网站的 DOWNLOADS 进行数据库软件程序下载选择;

在数据库官方下载页面中,选择 MySQL Community (GPL) Downloads 链接,进行数据库程序社区版下载;

image-20240406222143587

查看Linux系统的glibc运行使用的C语言库版本信息:

image-20240406222338858

image-20240409225104274

# 选择对应的版本进行下载
wget -cO /usr/local/mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz

curl -Lo /usr/local/mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz  -C - 

3)安装mysql-5.6.48

cd /usr/local/
tar xf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.6.48-linux-glibc2.12-x86_64 mysql
echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
mysqld -V
mysqld  Ver 5.6.48 for Linux on x86_64 (MySQL Community Server - GPL)

4)初始化数据库

install -d /data/mysql
useradd mysql
chown -R mysql. /data/mysql
  1. 不安全初始化数据库(无管理员密码)

    cd /usr/local/mysql/scripts
    ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
    

    image-20240608204558386

    可能会出现以下报错:

    image-20240608204117489

    解决方法:

    # 执行不安全初始化之前执行以下命令
    yum -y install autoconf
    
  2. 安全初始化数据库(随机管理员密码)

    mysql_secure_installation --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
    

    将会生成临时密码(12位密码 需要满足4种复杂度),必须在首次登录数据库时改掉,才能正常管理数据库;

    使用安全模式初始化数据库后,需要利用临时密码登录数据库服务,并设置管理员用户密码信息

    # 如果不修改设置管理员用户密码,使用临时密码只是能登录数据库,但是无法管理数据库
    mysql > alter user root@'localhost' identified by '123456';
    

不同版本安装初始化差异说明

image-20240408221019192

5)编写MySQL数据库配置文件

cat >/data/mysql/my.cnf <<EOF
# 创建数据库服务运行需要加载的my.cnf配置模板文件
[mysql] # mysql客户端配置区域
socket=/data/mysql/mysql.sock
[mysqld] # mysql服务端配置区域
user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
EOF
chown -R mysql. /data/mysql/

6)MySQL数据库服务脚本

  1. service工具

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    /etc/init.d/mysqld start
    service mysqld start
    service mysqld stop
    
  2. systemd形式

    cat >/usr/lib/systemd/system/mysql.service <<EOF
    [Unit]
    Description=MySQL 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=/data/mysql/my.cnf
    LimitNOFILE=5000
    EOF
    
    systemctl daemon-reload
    systemctl enable mysql --now
    

三、启动和关闭方式总结:

序号启动方式关闭方式
01mysqld &kill/pkill/killall (不建议) kill -9 禁用
02mysqld_safe &kill/pkill/killall (不建议)
03mysql.server startmysql.server stop
04service mysqld start (建议)service mysqld stop (建议)
05systemctl start mysqldsystemctl stop mysqld
06> shutdown
07mysqladmin -uroot -pzzp123 shutdown

四、数据库服务密码设置

配置登陆密码,并使用新密码进行登录数据库

# 第一次登录设置密码信息(root密码)
mysqladmin password 'zzp123'
或者
mysqladmin -uroot -p password 'zzp123'

登录测试

mysql -uroot -p
Enter password: 
mysql> quit

修改登陆密码,并使用新密码进行登录数据库

  1. 方法一:mysqladmin

    # 利用数据库服务命令修改密码信息-将原有zzp123密码改为zzp
    mysqladmin -uroot -pzzp123 password 'zzp'
    

    登录测试

    mysql -uroot -pzzp
    Welcome to the MySQL monitor. Commands end with ; or \g.
    
  2. 方法二:在MySQL中执行ALTER

    # 适合于mysql 8.0
    mysql> alter user root@'localhost' identified by 'zzp123'; 
    mysql> flush privileges;
    
  3. 方法三:在Mysql中执行UPDATE

    # 适合于mysql 5.7
    mysql> update mysql.user set authentication_string=PASSWORD('zzp123') where user='root' and host='localhost';
    mysql> flush privileges;
    
    # 适合于mysql 5.6
    mysql> set password for 'zzp'@'localhost'=PASSWORD('zzp123');
    mysql> flush privileges;