一、安装前环境监测
在MySQL被收购后,MySQL最初的作者担心MySQL存在闭源的风险,在MySQL的分支上开发了mariadb。后来一些Linux分发版就将mariadb作为系统默认安装的数据库系统
rpm -qa |grep -i mariadb #可能显示的结果:mariadb-libs-5.5.65-1.el7.x86_64 去除依赖: #rpm -ev --nodeps mariadb-libs-5.5.65-1.el7.x86_64二、下载并解压对应mysql安装包
下载地址:MySQL :: Download MySQL Community Server (Archived Versions)
unzip mysql-8.0.36-linux-glibc2.17-aarch64.tar.zip tar -xvf mysql-8.0.36-linux-glibc2.17-aarch64.tar.xz三、安装
1. 创建 MySQL 软链接(统一路径,方便后续调用)
作用:将解压后的 MySQL 实际目录映射为 /usr/local/mysql,后续升级只需更换软链接,无需修改配置
ln -s /opt/mysql/mysql-8.0.36-linux-glibc2.17-aarch64 /usr/local/mysql2. 进入 MySQL 安装主目录并创建用户
作用:切换到 MySQL 根目录,便于执行后续 bin 目录下的核心命令
cd /usr/local/mysql/ groupadd mysql useradd -r -g mysql mysql3. 创建 MySQL 数据存放目录并设置权限
作用:用于存储 MySQL 库表数据、日志文件、表空间等核心数据,生产环境建议单独挂载数据盘
mkdir -p /data/mysql chown mysql:mysql -R /data /data/mysql/ chmod 777 /data /usr/local/mysql cat > /etc/my.cnf <<EOF [mysqld] basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock user=mysql character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci lower_case_table_names=1 max_connections=200 sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO EOF4 MySQL 初始化(生成临时密码、系统表)
作用:安全初始化 MySQL,自动生成系统表、root 临时密码,指定配置文件、安装目录、数据目录和运行用户
注意:执行成功后会输出临时密码(如:A temporary password is generated for root@localhost: xxxxxxx),务必记录
cd /usr/local/mysql/bin/ ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize5. MySQL 服务配置(开机自启、全局调用)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld systemctl start mysqld systemctl enable mysqld ln -s /usr/local/mysql/bin/mysql /usr/bin四、后续常用配置(首次登录必做)
6. 登录 MySQL(使用初始化临时密码)
作用:使用 root 用户登录 MySQL 数据库,输入步骤 9 记录的临时密码(输入时不显示,直接输入后回车即可)
mysql -uroot -p7. 首次登录修改 root 密码(必做)
作用:MySQL 首次登录必须修改临时密码,否则无法执行任何业务操作,新密码建议复杂度高(字母+数字+符号)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; # 替换“新密码”为你设置的密码 #开启 root 远程登录(可选,便于远程管理) use mysql; update user set host = '%' where user = 'root'; flush privileges; # 刷新权限,立即生效8. 测试 MySQL 服务状态(验证部署成功)
作用:查看 MySQL 服务是否正常运行,确保部署无问题
systemctl status mysqld五、常见命令(后续运维常用)
# 启动 MySQL 服务 systemctl start mysqld # 停止 MySQL 服务 systemctl stop mysqld # 重启 MySQL 服务 systemctl restart mysqld # 查看 MySQL 运行状态 systemctl status mysqld # 查看 MySQL 版本 mysql -V