在服务器上安装Mysql8.0?

服务器

我来详细介绍在服务器上安装MySQL 8.0的步骤:

1. 系统准备

更新系统包

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL/Rocky Linux
sudo yum update -y
# 或者对于较新版本
sudo dnf update -y

2. 安装MySQL 8.0

Ubuntu/Debian 方法

# 添加MySQL官方APT仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb

# 更新包列表
sudo apt update

# 安装MySQL服务器
sudo apt install mysql-server -y

CentOS/RHEL/Rocky Linux 方法

# 添加MySQL YUM仓库
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el$(rpm -E %{rhel})-1.noarch.rpm

# 安装MySQL服务器
sudo yum install -y mysql-server
# 或者使用dnf
sudo dnf install -y mysql-server

3. 启动并设置开机自启

# 启动MySQL服务
sudo systemctl start mysqld

# 设置开机自启
sudo systemctl enable mysqld

# 检查状态
sudo systemctl status mysqld

4. 安全配置

获取临时密码

# 查看临时root密码
sudo grep 'temporary password' /var/log/mysqld.log
# 或者
sudo cat /var/log/mysqld.log | grep "temporary password"

运行安全脚本

sudo mysql_secure_installation

按照提示进行以下设置:

  • 输入临时密码
  • 设置新的root密码(强密码策略)
  • 移除匿名用户
  • 禁止root远程登录(生产环境建议)
  • 移除test数据库
  • 重新加载权限表

5. 基本配置优化

编辑配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 或 CentOS: /etc/my.cnf

添加或修改以下配置:

[mysqld]
# 基础设置
bind-address = 0.0.0.0  # 允许远程连接(生产环境谨慎使用)
port = 3306

# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 性能优化(根据服务器内存调整)
innodb_buffer_pool_size = 1G  # 推荐为物理内存的50-70%
max_connections = 200
table_open_cache = 2000
tmp_table_size = 64M
max_heap_table_size = 64M

# 日志设置
log-error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

# 其他优化
innodb_flush_log_at_trx_commit = 2
sync_binlog = 1000

重启MySQL

sudo systemctl restart mysqld

6. 创建用户和数据库

# 登录MySQL
mysql -u root -p

# 创建数据库
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 创建用户并授权
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';

# 远程访问用户(谨慎使用)
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'%';

# 刷新权限
FLUSH PRIVILEGES;

7. 防火墙配置

# Ubuntu/Debian (ufw)
sudo ufw allow 3306/tcp

# CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

8. 验证安装

# 检查MySQL版本
mysql --version

# 登录测试
mysql -u root -p -e "SELECT VERSION();"

# 检查服务状态
sudo systemctl status mysqld

9. 常用管理命令

# 查看MySQL进程
ps aux | grep mysql

# 查看端口监听
netstat -tlnp | grep :3306

# 查看错误日志
sudo tail -f /var/log/mysql/error.log

# 备份数据库
mysqldump -u root -p myapp > myapp_backup.sql

# 恢复数据库
mysql -u root -p myapp < myapp_backup.sql

注意事项

  1. 安全第一:生产环境不要使用root远程访问
  2. 密码强度:MySQL 8.0默认启用强密码策略
  3. 备份策略:定期备份重要数据
  4. 监控:设置监控告警
  5. 更新:定期更新MySQL版本修复安全漏洞

这样就完成了MySQL 8.0的完整安装和基础配置!

未经允许不得转载:CDNK博客 » 在服务器上安装Mysql8.0?