MySQL8安装部署
MySQL8安装部署
服务器参数优化
/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 681574400
kernel.shmmax = 137438953472
kernel.shmmni = 4096
kernel.sem = 250 32000 100 200
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
/etc/security/limits.conf
mysql soft nproc 65536
mysql hard nproc 65536
mysql soft nofile 65536
mysql hard nofile 65536
/etc/profile
if [ $USER = "mysql" ]; then
ulimit -u 16384 -n 65536
fi
rpm包安装
Red Hat 和 CentOS 上通常已经安装了 mariadb-libs 的包,需要先卸载
rpm -qa | grep mariadb-libs*
rpm -e mariadb-libs
下载安装
rpm 包说明:对于标准安装,必须至少安装 common、server 和 client 包
包名 | 说明 |
---|---|
server | 数据库服务器和相关工具 |
common | 服务器和客户端库的通用文件 |
client | MySQL 客户端应用程序和工具 |
devel | MySQL 数据库客户端应用程序的开发头文件和库 |
embedded-compat | MySQL 服务器作为嵌入式库,兼容使用库版本的应用程序 |
libs | MySQL 数据库客户端应用程序的共享库 |
libs-compat | 以前 MySQL 安装的共享兼容性库 |
test | MySQL 服务器的测试套件 |
router | 轻量级中间件,在 InnoDB 集群中提供透明路由 |
backup | MySQL 企业备份(仅限商业) |
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm
修改 my.cnf
自行修改其他配置参数,添加下面两个参数:
default_time_zone='+8:00'
lower_case_table_names=1
查看初始密码
cat /var/log/mysqld.log | grep password
忘记密码
#在my.cnf文件夹[mysqld]下添加
skip-grant-tables
#重启mysql服务
首次登录修改密码
ALTER USER root@localhost IDENTIFIED BY 'Xxy#2023';
允许远程连接
use mysql;
update user set host='%' where user='root';
flush privileges;
备份脚本
#!/bin/bash
# 定义备份目录
backup_dir="/path/to/backup/directory"
# 定义备份文件名
backup_file="${backup_dir}/$(date +%Y-%m-%d-%H-%M-%S).sql"
# 定义MySQL用户名、密码、主机名和数据库名
mysql_user="your_mysql_username"
mysql_password="your_mysql_password"
mysql_host="localhost"
mysql_database="your_mysql_database_name"
# 执行备份命令并将输出写入备份文件
mysqldump --user=${mysql_user} --password=${mysql_password} --host=${mysql_host} ${mysql_database} > ${backup_file}
# 检查备份文件是否创建成功
if [ -f ${backup_file} ]; then
echo "Backup succeeded!"
else
echo "Backup failed."
fi
#添加定时任务
crontab -e
0 3 * * * /opt/backup/backup-script.sh
更新
MySQL 8.0.16 之前,必须运行 mysql_upgrade
下载新包
#停止 MySQL
systemctl stop mysqld
#进入目录执行安装
rpm -Uvh ./*.rpm
#启动 MySQL
systemctl start mysqld
二进制安装
下载二进制zip文件
1.创建用户、用户组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
2.安装
解压
mkdir /usr/local/mysql-8.0.x/
chown mysql:mysql /usr/local/mysql-8.0.x
cd /usr/local/mysql-8.0.x
tar zxvf ~/mysql-8.0-linux-glibc2.12-x86_tar.gz
创建初始配置文件
将 mydefault.cnf 复制到 /etc/my.cnf。 编辑 datadir 设置以指向数据目录。 编辑 basedir 设置以指向安装目录。 编辑任何其他所需的设置,例如:日志文件设置、TCP 端口。 添加下面两个参数:
default_time_zone='+8:00'
lower_case_table_names=1
初始化数据目录并记下生成的临时密码
#进入mysql bin文件夹
mysqld initialize user=mysql
启动
mysqld_safe user=mysql &
使用临时密码连接到 MySQL 服务器
mysql -u root -p
更改用户密码
alter user xxx identified by 'new password';
(可选)填充时区表
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql -p
chkconfig 设置 MySQL 自动启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig --list
License:
CC BY 4.0