在进行MySQL部署前,请确认以下基础条件已满足:
检查项 | 标准要求 |
---|---|
操作系统版本 | CentOS 6/7(推荐7.6+) |
内存 | 建议≥4GB(生产环境≥16GB) |
磁盘空间 | /分区≥30GB,数据盘按需求规划 |
网络连通性 | 确保yum源可访问 |
根据系统版本选择相应操作:
# service NetworkManager stop
停止 NetworkManager 守护进程: [确定]
# chkconfig NetworkManager off
# chkconfig --list NetworkManager
NetworkManager 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
# systemctl stop NetworkManager.service
# systemctl disable NetworkManager.service
# systemctl status NetworkManager.service
注意:关闭服务后需手动配置静态IP
防止防火墙拦截数据库连接:
# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
# chkconfig iptables off
# chkconfig ip6tables off
# chkconfig --list iptables
iptables 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
# chkconfig --list ip6tables
ip6tables 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
# systemctl stop firewalld.service
# systemctl disable firewalld.service
# systemctl status firewalld.service
# sed -i "s/SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
# setenforce 0
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
配置操作系统YUM源
# vi /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=file:///mnt
gpgcheck=0
yum -y install gcc make cmake ncurses-devel libaio-devel openssl-devel
# groupadd -g 1001 mysql
# useradd -u 1001 -g mysql mysql
# echo 'mysql' | passwd --stdin mysql
# mkdir /mysql/app -p
# mkdir /mysql/product -p
# chown -R mysql:mysql /mysql
# chmod -R 755 /mysql
访问官方下载页面选择对应版本:
https://dev.mysql.com/downloads/mysql/
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz -C /mysql/app --strip-components=1
# vi /etc/my.cnf
mysql8.0 高效配置模板,一键提升数据库性能,自取
Mysql参数模版下载
# cd /mysql/app
# ./bin/mysqld --defaults-file=/etc/my.cnf --initialize
# grep 'temporary password' /mysql/product/data/myerror.log
2021-03-03T01:44:49.248365Z 1 [Note] A temporary password is generated for root@localhost: qdcf_Vl>k8LP
获取数据库初始登录临时密码:qdcf_Vl>k8LP
# vi /root/.bash_profile
export PATH=/mysql/app/bin:$PATH
# source /root/.bash_profile
# cp /mysql/app/support-files/mysql.server /etc/init.d/mysqld
# vi /etc/init.d/mysqld
basedir=/mysql/app #与上面创建的目录一致
datadir=/mysql/product/data #与上面创建的目录一致
# service mysqld start //启动mysql
# service mysqld status //查看启动状态
# service mysqld stop //停止mysql
mysqladmin -uroot -p'初始临时密码' password 'NewSecurePwd@123'
mysql> create user root@'%' identified by 'Hzmc321#';
mysql> grant all privileges on *.* to root@'%';
参考文章我的另一篇文章
MySQL 8.0全参数深度解析,高效配置模板+避坑指南,一键提升数据库性能!」
数据目录规划
备份策略
mysqldump
或xtrabackup
(使用参考我的另一篇文章Xtrabackup实战监控工具
Q1: 初始化时报错Failed to create directory
?
检查部署目录权限:
chown -R mysql:mysql /mysql
Q2: 客户端无法远程连接数据库?
检查用户权限配置:
CREATE USER 'root'@'%' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
推荐学习资料
如果觉得本教程有帮助,欢迎点赞+收藏!有疑问请在评论区留言
点击关注Mysql实战专栏,获取更多技术干货