一、安装方式
| 安装方式 | 特征说明 |
|---|---|
| 采用二进制方式安装 | 直接解压缩二进制程序包,进行简单的配置和初始化操作即可 |
| 采用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 -
清除系统自带的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 https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -O /usr/local/ -c
3)安装mysql-8.0.26
tar xf /usr/local/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
ln -s mysql-8.0.26-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
mysql -V
mysql Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
4)初始化数据库
install -d /zzp/softwares/mysql/3306/data
useradd mysql
chown -R mysql. /zzp/softwares/mysql/3306/data
-
不安全初始化数据库(无管理员密码)
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/zzp/softwares/mysql/3306/data
第二次执行会报错:因为数据目录已经存在
报错情况-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/*
-
安全初始化数据库(随机管理员密码)

将会生成临时密码(12位密码 需要满足4种复杂度),必须在首次登录数据库时改掉,才能正常管理数据库;
使用安全模式初始化数据库后,需要利用临时密码登录数据库服务,并设置管理员用户密码信息
# 如果不修改设置管理员用户密码,使用临时密码只是能登录数据库,但是无法管理数据库 mysql > alter user root@'localhost' identified by '123456';
不同版本安装初始化差异说明
| 版本信息 | 命令信息 | 初始化操作参数 | 备注说明 |
|---|---|---|---|
| 5.6 | scripts/mysql_install_db | 初始化的命令不一致,参数相同(无管理员密码) | |
| 5.7 8.0 | mysqld | --initialize-insecure | 表示不安全方式初始化(无管理员密码) |
| --initialize | 表示安全方式初始化(有随机默认管理员密码) |
5)编写MySQL数据库配置文件
# 创建数据库服务运行需要加载的my.cnf配置模板文件
cat > /etc/my.cnf <<EOF
[mysql] # mysql客户端配置区域
socket=/tmp/mysql.sock
[mysqld] # mysql服务端配置区域
user=mysql
basedir=/usr/local/mysql
datadir=/zzp/softwares/mysql/3306/data
socket=/tmp/mysql.sock
mysqlx=0
EOF
chown -R mysql. /zzp/softwares/mysql/3306/data
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 >/etc/systemd/system/mysqld8_3306.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/mysql8_3306/bin/mysqld --defaults-file=/usr/local/mysql8_3306/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 [root@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;
五、其他
33060端口
在启动mysql数据库服务时,可能看到33060端口信息,此端口信息主要实现mysqlx协议的通讯过程;
利用mysqlx协议可以实现利用mysql-shell功能组件,对数据进行key-value操作,即识别json文件信息,进行远程管理;
Port 3306 is the default port for the MySQL Protocol, which is used by the mysql client, MySQL Connectors, and utilities such as mysqldump and mysqlpump.
Port 33060 is the default port for the MySQL Database Extended Interface (the MySQL X Protocol).
The X Plugin can be disabled at startup by either setting mysqlx=0 in your MySQL configuration file, or by passing in either --mysqlx=0 or --skip-mysqlx when starting the MySQL server.
Alternatively, use the -DWITH_MYSQLX=OFF CMake option to compile MySQL Server without X Plugin. 参考链接:https://blog.csdn.net/michaelwoshi/article/details/107955539