一、安装方式
| 安装方式 | 特征说明 |
|---|---|
| 采用二进制方式安装 | 直接解压缩二进制程序包,进行简单的配置和初始化操作即可 |
| 采用rpm包方式安装 | 需要从官方网站下载rpm程序包,并且需要考虑系统环境的兼容性,解决软件程序包依赖(Bundle结尾的) |
| 采用yum包方式安装 | 需要根据官方网站说明,配置yum下载的仓库源信息,在联网情况下进行安装部署 |
| 采用源码包方式安装 | 需要从官方网站下载源码程序包,并且需要解决程序包依赖问题,以及需要采用编译安装 cmake -- make && make install 用于数据库二次开发 30~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 -
关闭防火墙
systemctl disable --now firewalld && systemctl is-enabled firewalld systemctl status firewalld -
禁用selinux
sed -ri 's#(SELINUX=)enforcing#\1disabled#' /etc/selinux/config grep ^SELINUX= /etc/selinux/config setenforce 0 getenforce#:分隔符,而不是传统的/
-r:扩展的正则表达式
():捕获组
\1:捕获后引用
-
清除系统自带的mariadb数据库服务相关的程序包
yum remove `rpm -qa|grep mariadb` -y -
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 链接,进行数据库程序社区版下载;

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


# 选择对应的版本进行下载
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
-
不安全初始化数据库(无管理员密码)
cd /usr/local/mysql/scripts ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
可能会出现以下报错:

解决方法:
# 执行不安全初始化之前执行以下命令 yum -y install autoconf -
安全初始化数据库(随机管理员密码)
mysql_secure_installation --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/将会生成临时密码(12位密码 需要满足4种复杂度),必须在首次登录数据库时改掉,才能正常管理数据库;
使用安全模式初始化数据库后,需要利用临时密码登录数据库服务,并设置管理员用户密码信息
# 如果不修改设置管理员用户密码,使用临时密码只是能登录数据库,但是无法管理数据库 mysql > alter user root@'localhost' identified by '123456';
不同版本安装初始化差异说明

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数据库服务脚本
-
service工具
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld /etc/init.d/mysqld start service mysqld start service mysqld stop -
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 EOFsystemctl daemon-reload systemctl enable mysql --now
三、启动和关闭方式总结:
| 序号 | 启动方式 | 关闭方式 |
|---|---|---|
| 01 | mysqld & | kill/pkill/killall (不建议) kill -9 禁用 |
| 02 | mysqld_safe & | kill/pkill/killall (不建议) |
| 03 | mysql.server start | mysql.server stop |
| 04 | service mysqld start (建议) | service mysqld stop (建议) |
| 05 | systemctl start mysqld | systemctl stop mysqld |
| 06 | > shutdown | |
| 07 | mysqladmin -uroot -pzzp123 shutdown |
四、数据库服务密码设置
配置登陆密码,并使用新密码进行登录数据库
# 第一次登录设置密码信息(root密码)
mysqladmin password 'zzp123'
或者
mysqladmin -uroot -p password 'zzp123'
登录测试
mysql -uroot -p
Enter password:
mysql> quit
修改登陆密码,并使用新密码进行登录数据库
-
方法一:mysqladmin
# 利用数据库服务命令修改密码信息-将原有zzp123密码改为zzp mysqladmin -uroot -pzzp123 password 'zzp'登录测试
mysql -uroot -pzzp Welcome to the MySQL monitor. Commands end with ; or \g. -
方法二:在MySQL中执行ALTER
# 适合于mysql 8.0 mysql> alter user root@'localhost' identified by 'zzp123'; mysql> flush privileges; -
方法三:在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;