openEuler 22.03 安装 Mysql 5.7,TAR离线安装
目录
- 一、检查系统是否安装其他版本Mariadb数据库
- 二、环境检查
- 2.1 必要环境检查
- 2.2 在线安装(有网络)
- 2.3 离线安装(无网络)
- 二、下载Mysql
- 2.1 在线下载
- 2.2 离线下载
- 三、安装Mysql
- 四、配置Mysql
- 五、开放防火墙端口
- 六、数据备份
- 七、常用命令
一、检查系统是否安装其他版本Mariadb数据库
# 查看已安装的 Mariadb 数据库版本
[root@openeuler ~]# rpm -qa|grep -i mariadb
# 卸载已安装的 Mariadb 数据库
[root@openeuler ~]# rpm -qa|grep mariadb|xargs rpm -e --nodeps
二、环境检查
2.1 必要环境检查
# 查看 libaio 版本
[root@openeuler ~]# rpm -q libaio
# 查看 numactl 版本
[root@openeuler ~]# rpm -q numactl
# 查看 ncurses-compat-libs 版本
[root@openeuler ~]# rpm -q ncurses-compat-libs
2.2 在线安装(有网络)
[root@openeuler ~]# sudo dnf install -y libaio numactl ncurses-compat-libs
2.3 离线安装(无网络)
1.3.1 软件包下载
openEuler软件中心:https://easysoftware.openeuler.org/zh/rpm
华为开源镜像站:http://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP4/everything/x86_64/Packages/
华中科技大学镜像站:https://mirrors.hust.edu.cn/openeuler/openEuler-22.03-LTS-SP4/everything/x86_64/Packages/
RPMFind:http://www.rpmfind.net/linux/rpm2html/search.php
依赖包下载:openEuler 22.03 离线安装 Mysql 5.7 依赖包
1.3.2 软件包安装
# 切换到 RPM 包所在目录,假设 RPM 包存放在 /home/rpm_packages 目录下
[root@openeuler ~]# cd /home/rpm_packages
# 正常安装命令
[root@openeuler rpm_packages]# sudo rpm -ivh *.rpm --nodeps
# 强制安装命令
# 重要事项:没把握的话,千万不要用下面这个命令,这个命令会忽略依赖和兼容性,可能会导致基础组件被卸载掉。
[root@openeuler rpm_packages]# sudo rpm -Uvh *.rpm --nodeps --force
小技巧:可以提前在有网络环境下下载安装包,移动到无网络环境
yumdownloader --resolve libaio
yumdownloader --resolve numactl
yumdownloader --resolve ncurses-compat-libs
二、下载Mysql
2.1 在线下载
# 创建安装目录
[root@openeuler ~]# cd /usr/local/
[root@openeuler local]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-el7-x86_64.tar.gz
2.2 离线下载
下载地址:https://downloads.mysql.com/archives/community/
上传到 /usr/local 目录下
三、安装Mysql
3.1 创建 MySQL 用户和组
# 创建用户和组
[root@openeuler ~]# sudo groupadd mysql
[root@openeuler ~]# sudo useradd -r -g mysql -s /bin/false mysql
3.2 初始化安装
# 进入安装目录
[root@openeuler ~]# cd /usr/local/
# 解压安装包
[root@openeuler local]# tar -zxvf mysql-5.7.44-el7-x86_64.tar.gz
# 重命名
[root@openeuler local]# sudo mv mysql-5.7.44-el7-x86_64 /usr/local/mysql
# 创建数据目录
[root@openeuler local]# sudo mkdir -p /mnt/mysql/data
# 初始化
[root@openeuler local]# sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mnt/mysql/data
初始化完成后,会在终端输出初始密码,如 [Note] A temporary password is generated for root@localhost: xxxxxx),请务必记录此密码。
3.3 Mysql 用户授权
# 安装目录授权
[root@openeuler local]# sudo chown -R mysql:mysql /usr/local/mysql
# PID目录授权
[root@openeuler local]# sudo mkdir -p /var/run/mysqld
[root@openeuler local]# sudo chown -R mysql:mysql /var/run/mysqld
# 日志目录授权
[root@openeuler local]# sudo touch /var/log/mysqld.log
[root@openeuler local]# sudo chown -R mysql:mysql /var/log/mysqld.log
3.4 配置 my.cnf
# 创建配置文件 /etc/my.cnf
[root@openeuler ~]# sudo tee /etc/my.cnf <<EOF[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#socket=/var/lib/mysql/mysql.sock
socket=/tmp/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
user=mysql
# 端口,默认3306
port=3366
# 安装路径
basedir=/usr/local/mysql
# 存储路径
datadir=/mnt/mysql/data
# 设置编码
character-set-server=utf8
collation-server=utf8_general_ci
# 默认采用InnoDB存储引擎
default-storage-engine=INNODB
# 设置大小写敏感
lower_case_table_names=1
# sql_mode定义了支持的sql语法、数据校验等
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 最大并行连接数
max_connections=100000[mysql]
default-character-set = utf8[mysql.server]
default-character-set = utf8[mysqld_safe]
default-character-set = utf8[client]
default-character-set = utf8
socket=/tmp/mysql.sock
EOF
3.5 设置环境变量
# /usr/local/mysql/bin 换成实际地址
[root@openeuler local]# echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile
[root@openeuler local]# source /etc/profile
[root@openeuler local]# env
3.6 配置 SELinux 安全上下文
[root@openeuler local]# sudo chcon -R -t mysqld_db_t /mnt/mysql/data
[root@openeuler local]# sudo semanage fcontext -a -t mysqld_db_t "/mnt/mysql/data(/.*)?"
[root@openeuler local]# sudo restorecon -Rv /mnt/mysql/data
3.7 配置 systemd 服务
# 创建自启动脚本
[root@openeuler local]# sudo vi /etc/systemd/system/mysqld.service# =============================================================================
# 复制粘贴以下内容:
[Unit]
Description=MySQL Server
After=network.target[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --datadir=/mnt/mysql/data
ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown
RuntimeDirectory=mysqld
RuntimeDirectoryMode=0755[Install]
WantedBy=multi-user.target
# =============================================================================
3.8 启动服务
# 注意:要保证 mysqld 后台服务未启动
# 设置开机自启
[root@openeuler ~]# sudo systemctl daemon-reload
[root@openeuler ~]# sudo systemctl enable mysqld
# 启动Nginx服务
[root@openeuler ~]# sudo systemctl start mysqld
# 查看服务状态
[root@openeuler ~]# sudo systemctl status mysqld
四、配置Mysql
# 登录 MySQL
[root@openeuler ~]# mysql -u root -p
Enter password: ## 初始密码# 重置密码,新密码root
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
# 授权远程访问权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
# 刷新策略
mysql> FLUSH PRIVILEGES;#修改密码长度限制策略
mysql> set global validate_password_policy=0; #--表示将密码安全等级设置为low
mysql> set global validate_password_length=1; #--表示将密码长度设置为最小6位
mysql> FLUSH PRIVILEGES;# 查看 MySQL 服务编码
mysql> show variables like 'character%';
五、开放防火墙端口
# 查询端口是否开放
[root@openeuler ~]# sudo firewall-cmd --query-port=3306/tcp
[root@openeuler ~]# sudo firewall-cmd --query-port=3366/tcp
# 开放端口(TCP协议)
[root@openeuler ~]# sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@openeuler ~]# sudo firewall-cmd --zone=public --add-port=3366/tcp --permanent
# 重新加载防火墙规则
[root@openeuler ~]# sudo firewall-cmd --reload
# 验证端口是否开放
[root@openeuler ~]# sudo firewall-cmd --zone=public --list-ports
# 查看所有端口
[root@centosServer ~]# sudo netstat -nlpt
六、数据备份
Linux 环境下 Mysql 5.7 数据定期备份
七、常用命令
# 启动服务
sudo systemctl start mysqld
# 查看服务状态
sudo systemctl status mysqld
# 重启服务
sudo systemctl restart mysqld
# 停止服务
sudo systemctl stop mysqld查看版本:mysql -V查看进程:ps -ef | grep mysqld
如果有mysqld_safe和mysqld两个进程,说明MySQL服务当前在启动状态